我已使用TimerA模块实施了一个计时器,可以倒计时毫秒。 我使用了Driverlib中的示例以及TI论坛中的示例作为参考。 当我在调试模式下使用MSP430FR6989的秒表对其进行测试时,时间似乎是准确的。 但是我意识到我需要一种更准确的方法来测试计时器。 因此,我通过计算CCS在调试模式下的CPU周期数来测试计时器。 但是,这表明,假设CPU频率为16MHz,计时器关闭了20倍。
我看到计时器实现正确的唯一方法是CPU频率为800 kHz,这在阅读MSP430FR6992的数据表后我不确定。
如果我忽略或误解了某些内容,请告诉我! 代码片段如下所示。 谢谢!
void timer_init()
{
Timer_a_clearTimerInterrupt (timer_A0_base);
// TimerA0 Uptime配置参数
timer_a_initUpModeParam =
{
Timer_A_CLOCKSOURCE_ACLK, // ACLK时钟源~32.768kHz
Timer_a_CLOCKSOURCE_diver_1, // aclk/??? =??kHz
32岁 //反跳周期
Timer_a_TAIE_INTERRUST_DISABLE, //禁用计时器中断
Timer_a_CCIE_CCR0_interrupT_enable,//启用CCR0中断
Timer_a_DO清除, //清除值
正确 //开始计时器
};
timer_a_initUpMode(timer_A0_base,¶m);
}
void delayMS(unsigned long DelayTime){
毫秒= 0;
while (millis < DelayTime){}
#if
defined(__TI_Compiler_version__)|| defined(__IAR_systems_icc__)
#pragma vector=TIMER0_A0_vector
__ISR#Elif
defined(__GNU__)
__attribute__(interrupt (TIMERA0_vector)
#IMenvoid