MSP430F169用定时器TimerA实现闪烁灯
- 初始化
- IO接口
- 时钟设置
- 检测
- 处理/中断
- 传输
- 保存数据
#include <msp430f169.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P6DIR |= 0x01; // P6.0 output
TACCTL0 = CCIE; // CCR0 interrupt enabled
TACCR0 = 25000;
volatile unsigned int i;
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--)
; // Time for flag to set
}while((IFG1 & OFIFG));
TACTL = TASSEL_1 + MC_2; // SMCLK, contmode
_EINT(); // enable GIE interrupt
LPM0; // Enter LPM0
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
P6OUT ^= 0x01; // Toggle P6.0
TACCR0 += 25000; // Add Offset to CCR0
}