TI中文支持网
TI专业的中文技术问题搜集分享网站

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

void timer_init(void){TA0CCTL0 = CCIE;// CCR0 interrupt enabledTA0CCR0 = 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 32KHZinitContParam0.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;//计数值100mSTimer_A_initUpMode(TIMER_A0_BASE, &initContParam0);Timer_A_startCounter(TIMER_A0_BASE,TIMER_A_CONTINUOUS_MODE);//A0开始计数
}
两个函数都是定时 100ms,但是程序运行结果不同。而且当我在打开定时器溢出中断的时候两个程序结构会相同,但程序就会不断开始重新执行执行。
user5112901:

用的是msp430f5529lp

灰小子:

楼主使用的什么型号的msp430?
两个程序的ACLK是否相同?有没有用io输出ACLK测量一下

赞(0)
未经允许不得转载:TI中文支持网 » 用定时器定时100ms发现用寄存器配置出来的程序,和用driverlib配置出来的,定时时间不同
分享到: 更多 (0)