Консультация № 188202
15.11.2015, 21:22
0.00 руб.
0 1 0
Здравствуйте! У меня возникли сложности с таким вопросом:
В моей ОС не работают часы. Точнее, как сказать, работают, но не совсем верно. Вот так идет в них счет времени:
01:01:57
01:01:58
01:01:59
01:02:10
[...]
01:59:57
01:59:58
01:59:59
02:10:10
То есть, все слетает на конце минуты. Код в приложении.

Приложение:
void clock()
{
log("[USER] Started program: Clock");
drawmain();
//drawWallpaper();
bool endofmin=false;
int minNum=0;
window clock(75,35,20,25,tNames[LANG_RUS][LC_NAME_CLOCK],"");
drawObj(clock);
char c;
unsigned char olds,oldm,oldh;
drawLine(0,50,230,450,LIGHT_BROWN);
int oldMin;
do
{
read_rtc(); //update the time...
//and print new time.
;
if(second!=olds&&second<60)
olds++;
//hour-=20;
if(second>59)
{
second-=(second-10);

}
if(!get_update_in_progress_flag())
{
vgaWriteStr(clock.x+5,clock.y+21,itoa(oldh+3),MAGENTA,LIGHT_GREY);
vgaWriteStr(clock.x+21,clock.y+21,":",MAGENTA,LIGHT_GREY);
vgaWriteStr(clock.x+29,clock.y+21,itoa(oldm),MAGENTA,LIGHT_GREY);
vgaWriteStr(clock.x+45,clock.y+21,":",MAGENTA,LIGHT_GREY);
vgaWriteStr(clock.x+53,clock.y+21,itoa(olds),MAGENTA,LIGHT_GREY);
}
if(second<60)
olds=second;
if(minute!=oldm&&minute<60)
oldm=minute;
if(hour!=oldh&&hour<60)
oldh=hour;
//vgaWriteStr(clock.x+5,clock.y+21,__TIME__,MAGENTA,LIGHT_GREY);
if(inb(0x60)!=c)
{
c = inb(0x60);
if(c>0)
{
if(c==1)
{
delWin(clock);
startZ(true);
}
}
}
}
while(c!=1);
}

Обсуждение

давно
Посетитель
399170
4
21.11.2015, 12:42
общий
Ау.
Форма ответа