STM8S105xx 定时器4问究竟是向上计数还是向下计数???

2019-07-19 21:36发布

[mw_shl_code=c,true][/mw_shl_code] [mw_shl_code=c,true]unsigned int i=0;[/mw_shl_code] [mw_shl_code=c,true]void Init_Timer4(void)        //1ms周期 { TIM4_CR1=0x01;//使能计数器 TIM4_IER=0x01;//更新中断使能 TIM4_EGR=0x01; TIM4_CNTR=16;//计数器值 TIM4_ARR=16;//自动重装的值 TIM4_PSCR=0x07;//分频值 默认上电时是 2MHz/128=15625Hz 计数一下0.064ms 1ms需要计数16 } #pragma vector=TIM4_OVR_UIF_vector//0x19 __interrupt void TIM4_OVR_UIF_IRQHandler(void)//对应IAP的中断地址:0x8060 { i++; TIM4_SR=0x00; if(i==1000)    //1s { PE_ODR^=0x20; //闪灯 i=0; } //return; }[/mw_shl_code] [mw_shl_code=c,true] [mw_shl_code=c,true] [mw_shl_code=c,true]刚接触两天STM8,想适应一下寄存器的写法。学到定时器这发现STM8S105k4的定时器4有点奇怪:[/mw_shl_code] [mw_shl_code=c,true]首先时钟源,它是使用内部RC内部时钟16MHz,然后在上电时又默认使用经过分频后的2MHz...[/mw_shl_code] [mw_shl_code=c,true]接着是看了手册,TIM4是向上计数,要想配置1ms的周期,按道理8位计数器的值跟重装值应该为 255-x , 然而现象并不如此[/mw_shl_code] [mw_shl_code=c,true]然后把TIM4当做递减计数来使用,就行了,这跟手册是不是矛盾了?[/mw_shl_code] 另外,想问IAR有没有像Keil可以仿真波形或者看某段代码运行的时间?[/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code] [/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。