请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 您好!
我使用 timer0每1秒生成一次中断。 这可以正常工作、但现在我想使用预分频器将中断周期增加到任何秒数。 如果没有预分频器、我每隔1秒就会收到一个中断、我希望将预分频器设置为1、那么我每2秒就会收到一个中断、依此类推、但这不起作用。
我初始化 timer0的代码:
void timer0_init (void){ //我们假设系统时钟频率为40MHz -> T = 25ns /*在时钟门控控制中启用16/32位宽通用定时器0时钟* SYSCTL_RCGCTIME_R |= 0x01; /*在修改前确保禁用 timerA */ TIMER0_CTL_R &=~0x01; /*选择32位配置*/ TIMER0_CFG_R = 0x00000000; /*根据需要将计时器配置为周期性、倒计数和其他功能*/ TIMER0_TAMR_R = 0x02; /*加载起始值*/ TIMER0_TAILR_R = 0x26259ff;//40MHz ->要每秒生成一个中断、要加载的值为:40.0000 - 1 = 39.999.999 -> 0x26259ff //预分频器??? 没有任何影响 TIMER0_TAPR_R = 0xff;//尝试使用不同的值而不起作用 /*在 NVIC 中启用 Timer0中断*/ ROM_IntEnable (INT_TIMER0A); /*启用中断*/ TIMER0_IMR_R |= 0x01; /*开始计数*/ TIMER0_CTL_R |= 0x01; }
我缺少什么?
谢谢