2011-04-29 2 views
0
void digitalClockDisplay(){ 
    // digital clock display of the time 
    Serial.print(hour()); 
    printDigits(minute()); 
    Serial.println(); 


} 



void printDigits(int digits){ 
    // utility function for digital clock display: prints preceding colon and leading 0 
    Serial.print(":"); 
    if(digits < 10) 
    Serial.print('0'); 
    Serial.print(digits); 
} 

//I tried something like this 

//void time(){ 

//char* hr = (char*)hour(); 

//Serial.println(hr); 

//} 
//But when I print it it gives a whole bunch of jibberish 

Voici les deux fonctions que j'utilise ce que j'essaie de faire est de faire une fonction comme la fonction digitalClockDisplay mais qui retourne l'heure: minute en tant que char * une fois que je l'ai Je veux être adresse en mesure de comparer à un autre char *Conversions Arduino en C

+0

pouvez-vous fournir le code qui appelle digitalClockDisplay? Avez-vous appelé Serial.begin ()? – shiva

Répondre

1

hour() semble revenir un int, si

char* hr = (char*)hour(); 
Serial.println(hr); 

jette un int à un pointeur et envoie ensuite les octets à ce (sens) à Serial.

Vous voulez probablement quelque chose comme:

char hr[8]; 
snprintf(hr,8,"%i:%02i",hour(),minute()); 
Serial.println(hr); 
+0

Merci a parfaitement fonctionné. – user541597

+0

@ user541597, pas de problème, mais n'oubliez pas de upvote. –