Arduino преобразования в C - PullRequest
0 голосов
/ 29 апреля 2011
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

Вот две функции, которые я использую. Я пытаюсь создать функцию наподобие функции digitalClockDisplay, но такую, которая возвращает час: минуту в виде символа * как только я получу то, что хочувозможность сравнить это с другим символом *

1 Ответ

1 голос
/ 29 апреля 2011

hour(), кажется, возвращает int, поэтому

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

приводит int к указателю, а затем отправляет байты по этому (бессмысленному) адресу в Serial.

Вы, вероятно, хотите что-то вроде:

char hr[8];
snprintf(hr,8,"%i:%02i",hour(),minute());
Serial.println(hr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...