工具/软件:TI-RTOS
您好专家、
客户对 SYS/BIOS 中的时钟模块有疑问。
硬件:TMS320C6747,50m 晶振,DSP 在300m;内运行
Software:CCS5.5,SYS/BIOS 6.37.5.35,XTOOLS 3.25.6.96
BIOS 启用时钟、定时器、时间戳,并确保 Timer0/Timer1的输入频率为50m,在 BIOS 启动前创建时钟
ERROR_INIT (&EB);
Clock_Params_init (clkParams);
clkParams.period = 5;
clkParams.startFlag = false;
GS_clk = Clock_create (ClockSwiHandler、100、clkParams、&EB);
assert (NULL!= GS_clk);
当该时钟从 Clock_start()开始时,使用 UART 获取 每次运行时的时间戳,并且发现时间间隔不是设置5ms,它几乎是5.005ms。
------------------------------------------------------
使用 Timer1_34中的 HWI 执行相同的过程时。
空 Timer1_setup (空)
{
静态常量 uint32_t timer_PERIOD12 = 50000000u/1000u - 1U;
静态常量 uint32_t timer_PERIOD34 = 50000000u/200u - 1U;
tmr1Regs->TCR = 0;
tmr1Regs->TGCR = 0;
tmr1Regs->TGCR |= 0x04;
tmr1Regs->TGCR |= 0x03;
tmr1Regs->PRD12 =定时器_PERIOD12;
tmr1Regs->TIM12=0;
tmr1Regs->PRD34 =定时器_PERIOD34;
tmr1Regs->TIM34 = 0;
tmr1Regs->TCR &=~0x1000100;
tmr1Regs->TCR |= 0x800080;
}
此设置可产生设置时间间隔。
当周期不减1时:
静态常量 uint32_t TIMER_PERIOD12 = 50000000u/1000u
静态常量 uint32_t TIMER_PERIOD34 = 50000000u/200u;
(笑声)
SYS/BIOS 中的时钟模块的工作方式相同。
那么 ,SYS/BIOS 中的时钟模块在配置时是否需要-1?
谢谢、
Wesley。