msp430g2553 time1

本文介绍了一个基于定时器1的中断初始化配置,并通过不同的计数器设置实现了多个周期性的任务调度。此外,还展示了如何利用这些定时中断触发串口发送特定消息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "time1.h"
#include "uart.h"
void Time1_Init(void)
{
    TA1CCR0 = 10000; //10MS
    TA1CCR1 = 20000;
    TA1CCR2 = 40000;
    TA1CCTL0 = OUTMOD_4+CCIE;
    TA1CCTL1 = OUTMOD_4+CCIE;
    TA1CCTL2 = OUTMOD_4+CCIE;
    TA1CTL    = TASSEL_2+MC_2+TAIE;
    _EINT();
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer1_A0 (void)
{
    static unsigned int timeccr0 = 0;

    TA1CCR0 += 10000;
    timeccr0++;
    if(100 == timeccr0)
    {
        timeccr0 = 0;
        UartSendStr("0000000\r\n");
    }
}
#pragma vector = TIMER1_A1_VECTOR
__interrupt void Timer1_A1(void)
{
    static unsigned int timeccr1 = 0,timeccr2 = 0,timetaiv = 0;
    switch(TA1IV)
    {
    case 2:
        TA1CCR1 += 20000;
        timeccr1++;
        if(100 == timeccr1)
        {
            timeccr1 = 0;
            //UartSendStr("1111111\r\n");
        }
        break;

    case 4:
        TA1CCR2 += 40000;
        timeccr2++;
        if(100 == timeccr2)
        {
            timeccr2 = 0;
            UartSendStr("2222222\r\n");
        }
        break;

    case 10:
        timetaiv++;
        if(15 == timetaiv)
        {
            timetaiv = 0;
            //UartSendStr("3333333\r\n");
        }
        break;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值