430的一个中断问题

2019-07-24 13:37发布

用TIMERA0实现1s中断,在中断函数里做一个3S到达判断,然后对P2端口状态取反(LED显示)
运行结果:当直接在中断函数内对端口对端口状态取反时,运行正常。(注:在主函数内执行了P2OUT = 0XFF;这句时,LED灯亮的时间极短,远不到一秒)当在中断函数内添加了IF判断语句后,端口无反应。找了几天也没有找到原因
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
lwsn
1楼-- · 2019-07-24 19:32
当在中断函数内添加了IF判断语句后,端口无反应

那是因为IF语句没有实现吧
nanmoj
2楼-- · 2019-07-24 23:09
 精彩回答 2  元偷偷看……
米尔豪斯
3楼-- · 2019-07-25 00:47
volatile类型变量有什么特点,在什么时候用
Thor9
4楼-- · 2019-07-25 01:04
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
豆腐块
5楼-- · 2019-07-25 01:10
正确使用 volatile 变量的条件
  只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:
  ● 对变量的写操作不依赖于当前值。
  ● 该变量没有包含在具有其他变量的不变式中。
zhangbo1985
6楼-- · 2019-07-25 04:23
正确处理好中断相关系的寄存器的默认值的。

一周热门 更多>