TI dsp Timer 定时器
TDDRH:TDDR是分频器 和 PRDH:PRD是计数器的周期,相当于是影子寄存器功能,会分别加载到 PSCH:PSC是分频器的执行寄存器 和 TIMH:TIM是PRDH:PRD的执行寄存器 中。
- 每经过一个时钟周期SYSCLKOUT,PSCH:PSC中存储的值递减1,当减到0发生借位(Borrrow)时候,PSCH:PSC 会将产生的借位信号传到TDDRH和TDDR寄存器中,并将其中值重新加载到PSCH:PSC 寄存器中;同时 预分配计数值 PSCH:PSC 也会将产生的借位信号传到计数 TIMH:TIM寄存器,然后将TIMH:TIM寄存器中的数递减1。
- 当计数 TIMH:TIM寄存器中的值减到0发生借位(Borrrow)的时候,也会触发周期寄存器PRDH:PRD中的值传到TIMH:TIM中,并同时产生TINT中断。
这里需要注意的是:
(1)TDDRH:TDDR 和 PRDH:PRD 两个影子寄存器的值需要实际算出来的理论值再减去1,
因为eg:寄存器取值范围决定 0x10000 = (0~0xFFFF);
CPUTimer_setPeriod(timer_base, period - 1); // 设置周期CPUTimer_setPreScaler(timer_base, prescaler - 1); // 设置定时器的时钟源
(2)预分配值 PSCH:PSC 传入的值可认为是 (1<< x),传入的值是对系统时钟源2的倍数进行分频的。