Попробуйте это же в терминал слать.
Есть подозрение, что с часов все отлично, а вот на дисплее шлак остается висеть ибо ширина строки меняется для случаев:
18-47-57
19-5-4 // а вот тут может остаться шлак в виде 57
Надо чистить строку перед записью / делать вывод BCD-кода / принудительно добавлять нули для жесткого формата хх-хх-хх
______
Кстати, вроде можно настроить форматирование для чисел на выводе сразу, только уже не помню как.
Что-то типо такого первое под руку попало:
printf ("\n2.5 Вывод числа 123 с заданной шириной 6 символов:\n");
{
int d1=123;
printf ("%6d\n",d1);
}
___________
Глянул видео - именно то, о чем я и написал. Старые цифры остаются. :)
sprintf(my_array, "Time: %2d-%2d-%2d", hours, minutes, seconds);
попробуй, может так сожрет.