我的代码如下:
while (1) ------------------main函数的主循环
{
Keyhandle(); //按键处理
Update_time();//更新时间
screen_select();//需要更新的数据;一般都为时间
}
void Update_time(void)
{
if (TimeDisplay == 1)/* 每过1s标志 */
{
to_tm(RTC_GetCounter(), &systmtime);//获取系统时间,转换为标准的日期格式
TimeDisplay = 0;
}
}
void screen_select() //一直需要更新的数据 flag:当按下确认键时才被置为1
{
if(KeyFuncPtr==showmenu) //显示lcd状态栏图标、小时间
Smalltime_Update(251,0);
if(KeyFuncIndex==0)//显示lcd桌面时间
{
display1_Update();
}
}
Keyhandle(); 函数执行的任务就是当按下按键后执行一些函数:如显示图片;
现在当没有按下按键时主函数循环执行Update_Show();screen_select();这两个函数,一切正常,lcd桌面时间和小时间都会更新;但是我一按下按键,显示完一张lcd背景图片,经常时间就不准确了,而且数值也巨大,只有主循环执行到下次更新时间时,时间又会恢复原来的准确时间继续走时;
请问大家这是怎么回事,大约出在什么问题上?
|