msp430iar捕获模式 上升沿捕获 同步 中断使能 CCI1A(P 2.0)代码
时间: 2024-02-20 10:55:59 浏览: 128
下面是 MSP430 的代码,实现上升沿捕获、同步和中断使能,使用了 CCI1A(P2.0):
```c
#include <msp430.h>
void main(void)
{
// 停用看门狗
WDTCTL = WDTPW | WDTHOLD;
// P2.0 设置为 TA1.CCI1A 输入模式
P2SEL |= BIT0;
P2DIR &= ~BIT0;
// TA1.CCTL1 配置为捕获模式、上升沿捕获、同步和中断使能
TA1CCTL1 = CM_1 | CCIS_0 | SCS | CAP | CCIE;
// TA1CTL 配置为 SMCLK 时钟源、计数器停止
TA1CTL = TASSEL_2 | MC_0;
// 允许中断
__enable_interrupt();
// 启动计数器
TA1CTL |= MC_2;
while(1);
}
// TA1.CCR1 中断服务程序
#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer_A1_ISR(void)
{
// 处理中断事件
}
```
这段代码中,P2.0 被设置为 TA1.CCI1A 输入模式,用于接收外部信号。TA1.CCTL1 被配置为捕获模式,上升沿捕获,同步和中断使能。TA1CTL 被配置为 SMCLK 时钟源,计数器停止。
在中断服务程序中,可以处理捕获事件。
相关问题
msp430捕获模式 上升沿捕获 同步 中断使能 CCI1A(P 2.0)iar代码
和前面的代码类似,下面是使用 IAR Embedded Workbench for MSP430 开发环境编写的 MSP430 上升沿捕获、同步和中断使能的代码,使用了 CCI1A(P2.0):
```c
#include <msp430.h>
int main(void)
{
// 停用看门狗
WDTCTL = WDTPW | WDTHOLD;
// P2.0 设置为 TA1.CCI1A 输入模式
P2SEL |= BIT0;
P2DIR &= ~BIT0;
// TA1.CCTL1 配置为捕获模式、上升沿捕获、同步和中断使能
TA1CCTL1 = CM_1 | CCIS_0 | SCS | CAP | CCIE;
// TA1CTL 配置为 SMCLK 时钟源、计数器停止
TA1CTL = TASSEL_2 | MC_0;
// 允许中断
__enable_interrupt();
// 启动计数器
TA1CTL |= MC_2;
while(1);
}
// TA1.CCR1 中断服务程序
#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer_A1_ISR(void)
{
// 处理中断事件
}
```
同样地,P2.0 被设置为 TA1.CCI1A 输入模式,用于接收外部信号。TA1.CCTL1 被配置为捕获模式,上升沿捕获,同步和中断使能。TA1CTL 被配置为 SMCLK 时钟源,计数器停止。
在中断服务程序中,可以处理捕获事件。
阅读全文