关于PIC 单片机 Timer0的问题

2020-02-09 11:27发布

最近在调试LCD,然后用到定时器,遇到这样的问题,还请各位高手指导,小弟先行谢过了。
问题如下:
    定时器定时200ms,主函数程序执行200ms时然后进入中断,执行中断程序,执行完就又返回到主函数里接着执行,
此时,问题就出现了,在LCD上显示的东西就乱了。
  一直不知道什么问题。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
eduhf_123
2020-02-10 21:55
1、用状态机是不是比较稳定?我笨想,就是好像不用去抖动。它只能从上一个状态跳到下一个状态。
-----------------
关于状态机,《时间触发嵌入式系统设计》这本书以及马老师跟傻孩子的帖子中有很多很详细的讨论,你看过就能有自己的看法了。


2、就您给我建议的这两种按键扫描的方法,有没有什么意义?
   比如说,什么情况下用第一种,什么情况下用第二种?或者说由自己决定,就是设计的时候是用的中断,然后就用中断
扫描。再或者是对时间要求比较严格的时候用中断扫描(以为,我认为中断扫描比状态机的快)。
-----------------
通常来说,只有在系统对按键响应的实时性要求非常高的时候,才需要用中断来实现;其他场合都可以用时间片+状态机的方式来实现。
毕竟,中断向量的跳转与返回、中断入口的现场保护、出口的现场恢复等等这些都是要占用代码空间和运行时间的。


3、您在这两种方法中都说要在while(1)之前清中断标志,然后再开中断,我对着不是很清楚,还请您给解释一下。
-----------------
因为在初始化过程中,可能已经发生了一些中断、对应的中断标志已经置位了,在开总中断允许之前,应该先清除这些中断标志,然后再开中断允许。

一周热门 更多>