void TIM4_Init(void)//256us中断一次
{
TIM4_EGR = 0x01; // 允许产生更新事件
TIM4_PSCR = 0x07;//计数器时钟=主时钟/128=16MHZ/128 //相当64us
TIM4_ARR = 31;// 设定重装载时的寄存器值,255是最大值
TIM4_CNTR = 31; // 设定计数器的初值 // 定时周期=(ARR+1)*64=16.320mS,本次为2ms
TIM4_CR1 = 0x01; // b0 = 1,允许计数器工作// b1 = 0,允许更新// 设置控制器,启动定时器
TIM4_IER = 0x01;// 允许更新中断
_asm("rim"); // 允许CPU全局中断
}
在STM8中CNTR有什么用? 测试中不管设置什么值延时时间都没有变化。
|