三个问题之一:TIMER的问题!!!

yppxhb 2008-07-29 05:49:03
我写的一个秒表程序,整体可以运行,暂停,重置都没问题,

但是秒表运行部分有点问题,显示到了30秒,也就是30000毫秒

以后,刷新就间隔很长,大概一秒多刷新一次最近时间。

秒表计时部分的程序如下:

static void run_stopwatch(stopwatch *pMe)
{
char szChar[100];
int i;

m_ms=GETTIMEMS() - (pMe->lasttime);
m_tms=m_ms/10;

if(m_tms>=100)
{
m_ss=m_tms/100;
m_tms=m_tms%100;
if(m_ss>=60)
{
m_mm=m_ss/60;
m_ss=m_ss%60;
}
}

SPRINTF(szChar,"%.2d:%.2d:",m_mm,m_ss);
SPRINTF(szChar,"%s%.2d",szChar,m_tms);

for(i=0;szChar[i]!='\0';i++)
{
*(szText+i)=*(szChar+i);
}
*(szText+i)='\0';

//IDisplay_ClearScreen(pMe->a.m_pIDisplay);
IDisplay_DrawText(pMe->a.m_pIDisplay,
AEE_FONT_NORMAL,
szText,
-1,
0,
0,
NULL,
IDF_ALIGN_CENTER |IDF_ALIGN_MIDDLE);


ISHELL_CancelTimer(pMe->a.m_pIShell,(PFNNOTIFY)loop_stopwatch,pMe);
ISHELL_SetTimer(pMe->a.m_pIShell,20,(PFNNOTIFY)loop_stopwatch,pMe);
IDisplay_Update (pMe->a.m_pIDisplay);
}

lasttime是在结构体中定义的一个全局变量,用于存储秒表刚开始的时间。
其他变量定义如下:
uint32 m_tms=0; //十毫秒 [0-99]
uint32 m_ss=0; //秒 [0-59]
uint32 m_mm=0; //分 [0-59]
uint32 m_ms=0; //毫秒[0-最大值]
AECHAR szText[100]; //显示时间格式的字符串MM:SS:MS

请高手解答,为什么到30秒以后,刷新就要过1秒多.
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kokar 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 smilelance 的回复:]
是这样地,30秒之后屏幕刷新变慢,

如果不像这样,去参考下我的文章,设置一个no_sleep事件

http://blog.csdn.net/smilelance/archive/2006/03/27/639699.aspx
[/Quote]


no_sleep 正解

一般300-500ms就可以了。
smilelance 2008-09-01
  • 打赏
  • 举报
回复
是这样地,30秒之后屏幕刷新变慢,

如果不像这样,去参考下我的文章,设置一个no_sleep事件

http://blog.csdn.net/smilelance/archive/2006/03/27/639699.aspx
tanyy2008 2008-08-19
  • 打赏
  • 举报
回复
不知道楼主是不是在brew自带的模拟器上验证的,有时候模拟器也是不准的,尤其是在timer被设定的场合,
我做了一个简单的定时器(250ms),也会出现过1分钟后刷新就变慢的情况,如果有条件的话,可以把APP烧到时机上验证一下。
本人也在学习中。。。。
hhyttppd 2008-08-03
  • 打赏
  • 举报
回复
(1)ISHELL_CancelTimer(pMe->a.m_pIShell,(PFNNOTIFY)loop_stopwatch,pMe);
是不需要的。
(2)IDisplay_Update (pMe->a.m_pIDisplay); 放在ISHELL_SetTimer
(3)20ms太短,考虑间断长点(刷新次数少点)
(4)定时器是往往是不准的,请确保不要让其它耗时操作阻塞定时器的处理。
相关推荐

731

社区成员

发帖
与我相关
我的任务
社区描述
为移动开发者提供丰富的解决方案、全面的技术下载。本版以游戏、多媒体、高效能等三个技术为核心,为开发者营造一个轻松、高效的学习交流平台。
社区管理员
  • Qualcomm开发
  • 霍大神
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告