430TIMERA捕获比较

#include<msp430x14x.h>
unsigned int lastCCR0;
unsigned int i; //测得信号周期为j*(1/100k)
unsigned long int k,j; //测得信号占空比为k/j
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗
TACTL = TASSEL0 + ID_3 + MC_2 + TACLR; //MCLK,8分频,连续计数,计数器清空
CCTL0 = CM_1 + CCIS_1 + SCS + CAP + CCIE; //上升沿,异步,捕获,捕获中断允许
k = 0;
lastCCR0 = 0;
P2DIR = 0xff;
P2OUT = 0x00;
_EINT();
for(;;)
{
for(i = 0;i < 20000;i ++);
P2OUT ^= 0x01; //产生捕获信号源
}
}


#pragma vector=TIMERA0_VECTOR //CCR0捕获产生中断
__interrupt void TIMER_cc(void)
{
if(SCCI == 0)
{
k += CCR0 - lastCCR0; //上下升沿间隔
lastCCR0 = CCR0;
                j=k;
                k=0;
}
}


#pragma vector=TIMERA1_VECTOR //定时器中断捕获
__interrupt void TIMER_A(void)
{
switch(TAIV)
{
case 2:break;
case 4:break;
case 10:k += 65536;
        break;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值