369|0

1436

帖子

0

资源

纯净的硅(高级)

MSP430F6638的TA0CCR0 中断 [复制链接]

程序
 TA0CCR0 中断
下面程序采用增计数模式,那么增加到TA0CCR0 就会产生TA0CCR0 中断,然后计数器自动清零,重新计数

【注意】:这是一个单源中断

#include<msp430f6638.h>
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    P4DIR |= BIT1; // P4.1 output
    TA0CCTL0 = CCIE; // 开启TA0CCR0 的中断
    TA0CCR0 = 50000;
    TA0CTL = TASSEL__SMCLK + MC__UP + TACLR; // 时钟源选SMCLK,增计数模式,清零计数器
    _BIS_SR(LPM0_bits + GIE); // Enter LPM0, enable interrupts
    _NOP(); // For debugger
}
// Timer_A0 ISR
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void) // 注意这个中断向量
{
    P4OUT
}


2 TAxIV中断
下面程序,由于是连续计数模式,计数器会从0到FFFF重复计数,但是又未设置TA0CCRn的值,所以只在0FFFFh的时候才产生TAIFG这个中断,这个中断的查询在TAxIV=14的位置

【注意】:这是多源中断
#include<msp430f6638.h>
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    P4DIR |= BIT1; // P4.1 output
    TA0CTL = TASSEL__ACLK + MC__CONTINUOUS + TACLR + TAIE; // 时钟源为ACLK,连续计数模式,清空计数器,是能中断
    __bis_SR_register(LPM3_bits + GIE); 
    //【区分】:__bic_SR_register()这个函数是和上面的作用相反,
    //比如__bic_SR_register(LPM0_bits + GIE);是关闭低功耗并且关闭总中断
    _NOP(); 
}

#pragma vector=TIMER0_A1_VECTOR // 这个中断向量和上面的程序不一样
    __interrupt void TIMER0_A1_ISR(void)
    {
        switch(__even_in_range(TA0IV,14))// __even_in_range()本征函数,用于多源中断的查询。
        {
            case 0: break; // No interrupt
            case 2: break; // CCR1 not used
            case 4: break; // CCR2 not used
            case 6: break; // reserved
            case 8: break; // reserved
            case 10: break; // reserved
            case 12: break; // reserved
            case 14: P4OUT ^= BIT1; // TAIFG
            break;
            default: break;
        }
    }


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表