Нужно выводить время в формате 00:00:00. Вот сделал функцию, но чувствую, что этот код очень корявый. Проблема в выводе чисел:
Если 1..9, то дописываю статический 0 слева от них(01..09)
Если 10..59, то сдвигаю курсор и затираю статический 0
А можно ли по-другому решить, есть ли способы?
Код: Выделить всё
void timer(void){
lcd_gotoxy(10,1);
lcd_putsf(":");
lcd_gotoxy(7,1);
lcd_putsf(":");
//вывод секунд
if (s>=10){
lcd_gotoxy(11,1);
}
if (s>59)
{
++min;
lcd_gotoxy(11,1);
lcd_putsf("0");
lcd_gotoxy(12,1);
s=0;
}
itoa(s,lcd_buffer);
lcd_puts(lcd_buffer);
//вывод Минут
if (min>=10) {
lcd_gotoxy(8,1);
}
if(min>59){
lcd_gotoxy(8,1);
lcd_putsf("0");
lcd_gotoxy(9,1);
min=0;
++chas;
}
itoa(min,lcd_buffer);
lcd_puts(lcd_buffer);
//вывод часов
if (chas>=10) {
lcd_gotoxy(5,1);
}
if (chas>24){
chas=0;
lcd_gotoxy(5,1);
lcd_putsf("0");
lcd_gotoxy(6,1);
}
itoa(chas,lcd_buffer);
lcd_puts(lcd_buffer);
}



