【TI首届低功耗设计大赛】按键识别与中断

2019-03-24 10:35发布

本帖最后由 tianshuihu 于 2015-1-5 22:48 编辑

MSP430FR5969 LaunchPad 上面配置了两个按键,分别连接到了P1.1 及 P4.5

其中P1口带有中断捕获功能,并且可以软件设置上升沿或下降沿触发中断,而P4.5只能用作普通的输入端口了,
不过二者均可设置输入端口弱上拉,所以简化了外部的电路设计

在这里尝试了用按键触发中断,进而切换温度的摄氏和华氏单位

但是在调试的过程中却发现:

硬件仿真或运行时
激活端口之后几乎马上就会触发IO中断标志(端口初始化时已清除该标志),一旦打开全局中断,就会立即响应该中断(按键没有按下)
如果激活端口之后,先清除IO中断标志,再打开全局中断,就不会触发中断


软件仿真时
激活端口之后,不会触发IO中断标志,打开全局中断,也没有任何响应

这个现象真的有点不解,后来一直是在开全局中断之前手动清除该标志

主程序,如果没有 “ P1IFG &= ~BIT1; ”, 执行完 “INIT_CLK();”,即进入IO中断函数
11.jpg

可是 IO 初始化时已经清楚标志了哎。。。
22.jpg

这个是IO中断函数,一旦触发中断就会改变LED1的状态,并且温度单位在摄氏和华氏之间切换

33.jpg

主函数中对温度显示的相应
3.jpg


默认摄氏显示
IMG-20150105-00253.jpg


按键按下,切换为华氏,点亮左侧红 {MOD}LED,再次按下又切换为上图的摄氏
IMG-20150105-00254.jpg

此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章