VC++6.0 MFC 计时器在串口中问题,延时

火山口的绿荫 2013-09-25 09:06:34
做了一个界面,上面有几个按钮,每个按钮相应控制单片机的引脚上的led,这部分已经可以实现了。

现在想利用计时器,就是点击一个按钮,led亮,停一段时间,再点击另一个按钮...时间是不一定一样长的。相当于演练一遍,最后点击一个发送按钮,在单片机还有之前延时的那些效果。

主要是时间这一方面的,怎么记录时间?简单说要有一个延时,但延时是根据按下两个按钮的时间间隔,还能再用这些时间,不是定时器。
...全文
306 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
火山口的绿荫 2013-09-30
  • 打赏
  • 举报
回复
引用 8 楼 zzdmfk 的回复:
[quote=引用 7 楼 u011933159 的回复:] [quote=引用 6 楼 zzdmfk 的回复:] 不是要你保存时间,而是保存时间差。
时间差保存已经搞定了。 现在要重复之前的那些每次按下功能,遇到for的循环里用SetTimer定时那些时间,相当于只有最后一个循环有用而已。 for(.....) {SetTimer(j,seconds[m],NULL); }只有最后一个定时有用,其他的定时都没有了。怎么办[/quote] 唉,怎么这样去搞,一个timer里sleep几次就行了,或者放到线程中。[/quote] 那请问怎么搞呢,我保存了多个时间在seconds【】里,怎么一个时间到了执行一些命令?sleep没用过
路人乙2019 2013-09-29
  • 打赏
  • 举报
回复
引用 7 楼 u011933159 的回复:
[quote=引用 6 楼 zzdmfk 的回复:] 不是要你保存时间,而是保存时间差。
时间差保存已经搞定了。 现在要重复之前的那些每次按下功能,遇到for的循环里用SetTimer定时那些时间,相当于只有最后一个循环有用而已。 for(.....) {SetTimer(j,seconds[m],NULL); }只有最后一个定时有用,其他的定时都没有了。怎么办[/quote] 唉,怎么这样去搞,一个timer里sleep几次就行了,或者放到线程中。
火山口的绿荫 2013-09-29
  • 打赏
  • 举报
回复
引用 6 楼 zzdmfk 的回复:
不是要你保存时间,而是保存时间差。
时间差保存已经搞定了。 现在要重复之前的那些每次按下功能,遇到for的循环里用SetTimer定时那些时间,相当于只有最后一个循环有用而已。 for(.....) {SetTimer(j,seconds[m],NULL); }只有最后一个定时有用,其他的定时都没有了。怎么办
hdg3707 2013-09-28
  • 打赏
  • 举报
回复
VC里有时间函数,也有类似GetTickCount函数,具体我忘了,用这个计算时间间隔,你查一下这个函数的具体写法和用法就知道了
路人乙2019 2013-09-28
  • 打赏
  • 举报
回复
不是要你保存时间,而是保存时间差。
火山口的绿荫 2013-09-27
  • 打赏
  • 举报
回复
引用 1 楼 zzdmfk 的回复:
不太明白你想表达的,两个按钮间隔可以在处理单击事件时获取时间,把两时间相减。可以把各个差保存起来。
但我不止处理两个按钮,两个按钮是还好啦。多个按钮就不知道怎么处理前后点击的时间间隔。想用数组,但是在单击时间里的获取时间不可以直接给数组
火山口的绿荫 2013-09-27
  • 打赏
  • 举报
回复
引用 2 楼 hdg3707 的回复:
这个简单,记住每次点击的时间间隔,当点发送时,就启动定时器,按顺序改变定时器的定时时间,在定时器函数里按顺序执行每个按钮(就是到哪个时间就执行哪个按钮,不是一次顺序执行所有的按钮)
用什么来记算每次点击的时间间隔?
hdg3707 2013-09-26
  • 打赏
  • 举报
回复
这个简单,记住每次点击的时间间隔,当点发送时,就启动定时器,按顺序改变定时器的定时时间,在定时器函数里按顺序执行每个按钮(就是到哪个时间就执行哪个按钮,不是一次顺序执行所有的按钮)
路人乙2019 2013-09-25
  • 打赏
  • 举报
回复
不太明白你想表达的,两个按钮间隔可以在处理单击事件时获取时间,把两时间相减。可以把各个差保存起来。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧