发新帖我要提问
12
返回列表
打印

单片机编程思路问题

[复制链接]
楼主: tuzihog
手机看帖
扫描二维码
随时随地手机跟帖
21
DownCloud| | 2011-12-17 13:13 | 只看该作者 回帖奖励 |倒序浏览
还不错。

使用特权

评论回复
22
dengm| | 2011-12-17 13:39 | 只看该作者
本帖最后由 dengm 于 2011-12-17 14:23 编辑

一般在中断中设定时标(如 f_10ms, f_200ms), 在mainloop用工作时标:

MainLoop:
       SETB  f_10msWK
       JBC f_10ms,  $ + 5
          CLR  f_10msWK

       SETB  f_200msWK
       JBC f_200ms,  $ + 5
          CLR  f_200msWK
     ;------------------------------

       ACALL TASK0
       ACALL TASK1
       ;.....
       ;.....

     AJMP  MainLoop

TASK0:   ; KEY INPUT
       JB F_10MSWK, $+4
          RET
      ;.....
      ;.....
      RET

使用特权

评论回复
23
DownCloud| | 2011-12-17 14:07 | 只看该作者
嗯,很简单,思维方式比较重要。
同步,独立,等……

使用特权

评论回复
24
yudahai1314| | 2011-12-17 16:13 | 只看该作者
:hug:

使用特权

评论回复
25
zxcscm| | 2011-12-19 13:17 | 只看该作者
值得学习

使用特权

评论回复
26
tuzihog|  楼主 | 2011-12-21 21:30 | 只看该作者
https://bbs.21ic.com/frame.php?fr ... com/iclist-6-1.html
诚邀有兴趣的朋友去这个链接进行进一步的讨论!

使用特权

评论回复
27
liuyu26ll| | 2011-12-21 22:46 | 只看该作者
用多个标志位的方法.....依然是有BUG存在的....
执行某一个函数的时间点有可能不是你想要的那个时间点.....而很有可能要比你想要的时间点至少晚一个主函数运行周期.

你这个思路的目的应该就是要让一个函数在特定的时间上被执行......如果你想让你的函数按一个特定的顺序执行的话.....没有必要这么写~!~!!因为MAIN()函数就是顺序执行的!!!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则