STM8S定时器的初值如何计算 比如定时器4 10ms怎么计算 是否有公式
1
|
|
|
|
你设置初值为1ms,定义一个变量,假设为time,让他在中断函数里面自加就行了。。。
|
|
|
|
|
这个你可以具体算一下,根据实际定时器使用的时钟频率,然后再用重载值乘以这个频率的倒数就是一次中断的时间,然后你在中断变量里面设置累加计数
|
|
|
|
|
呵呵,收下了,虽然不需要用软件写代码,不过头像蛮好看的。
|
|
|
|
|
谢谢分享
|
|
|
|
|
我要软件,不要这样子对我啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
|
|
|
|
|
本帖最后由 HARRY007 于 2016-5-25 10:13 编辑
- /*******************************************************************************
- * 名称: Time4_Init
- * 功能: 定时器4初始化
- * 形参: 无
- * 返回: 无
- * 说明: 定时器4用来一个1MS的时间基准//16MHz进行128分频,一个脉冲8us;理论定时中断时间 8us*125=1MS
- ******************************************************************************/
- void Time4_Init(void)
- {
- TIM4_TimeBaseInit(TIM4_PRESCALER_128, 124);
- TIM4_PrescalerConfig(TIM4_PRESCALER_128, TIM4_PSCRELOADMODE_IMMEDIATE);
- TIM4_ARRPreloadConfig(ENABLE);
- TIM4_ClearFlag(TIM4_FLAG_UPDATE);
- TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
- TIM4_Cmd(ENABLE);
- }
复制代码
|
|
|
|
|
定时器的原理就是在寄存器中按照固定的脉冲进行计数,所以手册中都有明确说明是向上计数还是向下计数,搞清楚以后根据计数的个数乘上固定的时钟周期时间就是计时的时间。示例的一段代码我给你贴在上面了,前段时间刚好用过它,10ms你就自己来算了~
|
|
|
|
|
谢谢分享!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
兄弟,你太有才了,真是太太太有才了,这个软件解决了N的N次方的难题呀
|
|
|
|
|