Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

用定时器定时100ms发现用寄存器配置出来的程序,和用driverlib配置出来的,定时时间不同

$
0
0
void timer_init(void){
  TA0CCTL0 = CCIE;                          // CCR0 interrupt enabled
  TA0CCR0 = 3200;
  TA0CTL = TASSEL_1 + MC_1 + TACLR;         // ACLK, upmode, clear TAR
}


void Timer_Init(void){
    
    //定时器TIMER0初始化
    Timer_A_initUpModeParam initContParam0 = {0};
    initContParam0.captureCompareInterruptEnable_CCR0_CCIE=TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE ;//CCR0中断使能
    initContParam0.clockSource = TIMER_A_CLOCKSOURCE_ACLK;    //时钟源位ACLK 32KHZ
    initContParam0.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
    initContParam0.startTimer = false; 
    initContParam0.timerClear = TIMER_A_DO_CLEAR;  // 清除定时器
    initContParam0.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE; //关闭定时器A的溢出中断
    initContParam0.timerPeriod = 3200;          //计数值100mS
    Timer_A_initUpMode(TIMER_A0_BASE, &initContParam0);
    Timer_A_startCounter(TIMER_A0_BASE,
                         TIMER_A_CONTINUOUS_MODE
                         );//A0开始计数
}
两个函数都是定时 100ms,但是程序运行结果不同。而且当我在打开定时器溢出中断的时候两个程序结构会相同,但程序就会不断开始重新执行执行。

Viewing all articles
Browse latest Browse all 3634

Trending Articles