在这一部分中我们将会初步了解到中断的概念及其作用, 我们会尝试使用计时器中断和 I/O 中断操作 LED 灯,让我们开始吧!
什么是中断?我们可以将它理解为一个约定的信号,来告知单片 机特定的事件发生了,引起程序从正常运行的主函数中断开,转而 执行中断处理程序,处理特定的事件。
中断是一个非常重要的概念,它可以让处理器免于执行冗余的轮 询操作等待特定的外部事件的发生。在 MSP430 的架构中,有许 多种类的中断:计时器中断,I/O 中断,ADC 中断等等。每一种中 断在使用前都要使能和配置,每一种中断又分别有中断处理程序 (Service Routine)。
下面就让我们尝试写一个小程序,实现使用计时器中断和 I/O 中 断操作 LED 灯。
#include "msp430g2553.h" void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
按照惯例,首先包含 g2553 的头文件,关闭看门狗。每次写程序的时候你总会用到它们。
CCTL0 = CCIE; // CCR0 interrupt enabled
TACTL = TASSEL_2 + MC_1 + ID_3; // SMCLK/8, upmode
TACCR0 = 10000; // 12.5 Hz
这几行简单配置了计时器中断。