msp430iar代码 设置定时器为捕获/比较模式 (配置TA1CTL寄存器 配置TA1CCTL.1寄存器)
时间: 2023-10-03 18:09:19 浏览: 123
下面是MSP430 IAR代码设置TA1定时器为捕获/比较模式的步骤:
```c
#include <msp430.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 停用看门狗定时器
TA1CTL |= TASSEL_2 + MC_1; // 选择SMCLK作为计时时钟源,设置为增计数模式
TA1CCTL1 |= CAP + CM_1 + CCIE; // 设置为捕获模式,上升沿捕获,开启中断
__bis_SR_register(LPM0_bits + GIE); // 进入低功耗模式0,开启全局中断
}
#pragma vector = TIMER1_A1_VECTOR // 定时器1.1中断向量
__interrupt void Timer1_A1_ISR(void)
{
switch(TA1IV)
{
case 2: // 捕获中断
/* 在这里添加捕获中断处理代码 */
break;
}
}
```
在上面的代码中,我们首先停用了看门狗定时器,然后选择SMCLK作为TA1计时时钟源,并将TA1定时器设置为增计数模式。
接着,我们配置TA1CCTL.1寄存器,将其设置为捕获模式(CAP),上升沿捕获(CM_1),并开启中断(CCIE)。
最后,我们进入低功耗模式0,并开启全局中断。当TA1定时器捕获到上升沿时,便会触发Timer1_A1_ISR中断服务程序,我们可以在其中添加捕获中断处理代码。
阅读全文