本帖最后由 tianshuihu 于 2015-1-5 22:48 编辑
MSP430FR5969 LaunchPad 上面配置了两个按键,分别连接到了P1.1 及 P4.5
其中P1口带有中断捕获功能,并且可以软件设置上升沿或下降沿触发中断,而P4.5只能用作普通的输入端口了,
不过二者均可设置输入端口弱上拉,所以简化了外部的电路设计
在这里尝试了用按键触发中断,进而切换温度的摄氏和华氏单位
但是在调试的过程中却发现:
硬件仿真或运行时
激活端口之后几乎马上就会触发IO中断标志(端口初始化时已清除该标志),一旦打开全局中断,就会立即响应该中断(按键没有按下)
如果激活端口之后,先清除IO中断标志,再打开全局中断,就不会触发中断
软件仿真时
激活端口之后,不会触发IO中断标志,打开全局中断,也没有任何响应
这个现象真的有点不解,后来一直是在开全局中断之前手动清除该标志
主程序,如果没有 “ P1IFG &= ~BIT1; ”, 执行完 “INIT_CLK();”,即进入IO中断函数
可是 IO 初始化时已经清楚标志了哎。。。
这个是IO中断函数,一旦触发中断就会改变LED1的状态,并且温度单位在摄氏和华氏之间切换
主函数中对温度显示的相应
默认摄氏显示
按键按下,切换为华氏,点亮左侧红 {MOD}LED,再次按下又切换为上图的摄氏
此帖出自
小平头技术问答
一周热门 更多>