中断
(一)查询与中断
1.查询:按照主函数中的语句顺序,顺序执行
(1)优点:结构简单,易于理解
(2)缺点:无法充分利用CPU资源
2.中断:程序顺序执行,遇到中断使能,跳转执行中断函数
(1)优点
- 充分利用CPU资源,提高效率
- 易于处理突发事件
(2)缺点:结构复杂,不好理解(次要)
(二)中断相关知识
1.中断分类(中断源)
(1)外部中断
- 按键
- 外部通讯中断
(2)内部中断
- CPU内部中断,如重置,遇到突发事件处理的中断
- 相关外设中断
2.中断优先级:优先级高的先执行
3.注意:具体哪些端口可以中断需要看具体数据手册
(三)编程
1.编程流程
(1)配置所需中断功能相关寄存器,开启功能中断以及全局中断
- 中断源
- 中断优先级
- 中断使能
(2)编写中断处理子程(ISR)(CPU硬件自动调用)
- 中断触发源判断(中断触发,相关标志位置1)
- 中断标志位清零
(3)在中断函数中处理相关任务
2.编程实例
(1)寄存器编程
#include <msp430.h>
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
/******************
* 功能:按键实现LED开关
* 函数:按键中断函数
******************/
/*LED初始化*/
P1SEL &=~BIT0; //GPIO模式
P1DIR |= BIT0; //输出模式
/*按键中断初始化*/
P2SEL &=~BI