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

TM4C123 TIMER 定时器问题

为什么定时器设置 TIMER_O_TAMR.4=1后定时器预分频器失效了,

代码如下:

 

 ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_WTIMER0);

 HWREG(WTIMER0_BASE + TIMER_O_CFG)=4;

 HWREG(WTIMER0_BASE +TIMER_O_TAMR)=0x12;

 HWREG(WTIMER0_BASE +TIMER_O_TBMR)=2;  

 HWREG(WTIMER0_BASE + TIMER_O_TAPR) = ROM_SysCtlClockGet()/1000;  

 ROM_TimerEnable(WTIMER0_BASE, TIMER_BOTH);

 

Wellin Zhang:

GuoQiang

不知道你所说的预分频器失效是什么现象。 根据你的代码应该是将WTIMER0A配置为递减周期计数,此时TAPR中的值应该进行count down,

另外,建议使用API函数进行TIMER的配置。

周国强:

回复 Wellin Zhang:

预分频失效的意思就是说本来设计预分频后1MS计数器增减1,失效后就是按主频来增减1,增减得很快,

直接用外部16M当主频,16000的预分频,

Wellin Zhang:

回复 周国强:

国强,

可能你对该处预分频寄存器的功能理解上有些偏差。当工作在单次触发或周期模式时,该寄存器允许软件扩充定时器的范围。

而不是对Timer的时钟进行分频。

TM4C123的Timer,只能使用system clock作为时钟源。

rongwei li:

回复 Wellin Zhang:

预分频寄存器 允许软件扩充定时器的范围,

那请问您 TimerPrescaleSet(TIMER1_BASE, TIMER_A,(80-1));这句代码 会对定时器的范围产生什么影响呢?

rongwei li:

回复 Wellin Zhang:

SysCtlClockSet(SYSCTL_SYSDIV_16|SYSCTL_USE_OSC|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN)

TimerConfigure(TIMER0_BASE, TIMER_CFG_A_PERIODIC_UP);  //周期性向上计数 Half-width periodic timer TimerLoadSet(TIMER0_BASE, TIMER_A,49999);  //配置20Hz   1MHz/(49999+1) = 20Hz

49999 同样可以SysCtlClockGet()/20-1 算的(1MHz主频下)

以上是我在1MHz配置情况下配置20Hz TIM的过程, 请问我主频配置到80MHz情况下,如果设置预分频降低TIM的时钟,

如何将TIM配置到20Hz呢?

赞(0)
未经允许不得转载:TI中文支持网 » TM4C123 TIMER 定时器问题
分享到: 更多 (0)