void TIM4_Init(void)//256us中断一次
{
TIM4_IER = 0x00;// 禁止中断
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全局中断
}
求教原子哥
TIM4_ARR = 31;
TIM4_CNTR = 31;
stm8的定时器初始化时这两个为什么要设置成一样?TIM4_CNTR 不是从0开始吗 ,如何按照上面的设置是不是意味着初始化完成后就会马上产生一次更新中断
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
可能设计者想要这个效果吧。
---------------------------------
一个是初始的计数值,一个是自动重装值,我通常把初始计数值设为0
一周热门 更多>