标题: 关于51单片机定时器计数不够长的问题,想问问各位大佬有没有什么思路 [打印本页]

作者: LUREN1    时间: 2022-10-10 17:10
标题: 关于51单片机定时器计数不够长的问题,想问问各位大佬有没有什么思路
自己想做一个霍尔电机测速程序,依靠测量霍尔电平的脉宽时间来求解转速,但当电机在转速较低时,由于51定时器最多是16位重装载,用12Mhz晶振晶振的话,最多测量的脉宽时长为65535us,导致在电机在低转速区间测量不准确的情况,请问各位大佬有没有什么好的办法或者思路,延长定时器的计数时间

作者: Y_G_G    时间: 2022-10-10 17:23
这.......这不是基础知识吗?
搞一个静态变量a,在定时器中断中,每次溢出就a+1
要计算与时间相关的数据的时候,把定时器当前计数器的值加上这个变量,不就知道总时间了?
a*65536+当前定时器计数器值=总时间
用完了再把a清除,进入下一个计时
作者: 624353765    时间: 2022-10-10 21:44
STC8G系列等等都自带脉宽检测功能
作者: LUREN1    时间: 2022-10-10 22:42
Y_G_G 发表于 2022-10-10 17:23
这.......这不是基础知识吗?
搞一个静态变量a,在定时器中断中,每次溢出就a+1
要计算与时间相关的数据的时 ...

是这样,但您说的这个方法我也想过,但我设置的是外部信号下降沿会产生中断,计时器溢出时也会产生中断,我无法辨别到底是那个信号产生的中断,有没有什么标志位能够区分两者
作者: LUREN1    时间: 2022-10-10 22:46
qq624353765 发表于 2022-10-10 21:44
STC8G系列等等都自带脉宽检测功能

关键是脉宽监测的定时器的TL0和TH0加起来的时间一共是65535us,(51能够测量的最大脉宽为65535us),在电机低转速(脉宽时间>65535us)的情况下如何测量速度,是我目前所遇到的问题
作者: 188610329    时间: 2022-10-10 22:59
LUREN1 发表于 2022-10-10 22:42
是这样,但您说的这个方法我也想过,但我设置的是外部信号下降沿会产生中断,计时器溢出时也会产生中断, ...

为什么不能判断? 不同的中断触发,进入不同的中断函数,这不是分的清清楚楚明明白白的么?
作者: dyx811    时间: 2022-10-10 23:07
可不可以多+几个65535呢?
作者: hhh402    时间: 2022-10-11 07:28
嫌单片机太快最简单是降低主频,为什么要12MHz呢?3MHz不行吗?还嫌不够慢再降低,1M就相当于多了12个65535了,频率最高主频有上限,最低没有下限的。现在单片机大部分都不需要外部晶振了,调节主频很简单。
作者: Y_G_G    时间: 2022-10-11 08:54
LUREN1 发表于 2022-10-10 22:42
是这样,但您说的这个方法我也想过,但我设置的是外部信号下降沿会产生中断,计时器溢出时也会产生中断, ...

这个.......
8051的中断是有固定中断入口的,不需要识别的呀
定时器中断就是定时器中断,只有定时器才能触发的
如果是单一个霍尔,为什么不用外部中断,由外部中断来启动定时器呢?
作者: coody_sz    时间: 2022-10-11 10:04
LUREN1 发表于 2022-10-10 22:46
关键是脉宽监测的定时器的TL0和TH0加起来的时间一共是65535us,(51能够测量的最大脉宽为65535us),在电机 ...

STC8H系列的MCU的脉冲测量,其时钟可以设置,可以是fosc/1~65536,12MH可以测量到350秒。
作者: 逍遥111111    时间: 2022-10-11 10:27
不同中断是有自己固定的入口的,不用怕识别错误

435405a067a00653a13f55284f16e2d.jpg (61.48 KB, 下载次数: 38)

435405a067a00653a13f55284f16e2d.jpg

作者: yzwzfyz    时间: 2022-10-11 12:49
定时器标配是16位,自己随便加个寄存器参与计数,就是24位。再加……
足够你用的了。
作者: wufa1986    时间: 2022-10-11 14:14
开启定时溢出中断
作者: LUREN1    时间: 2022-10-11 16:33
Y_G_G 发表于 2022-10-11 08:54
这个.......
8051的中断是有固定中断入口的,不需要识别的呀
定时器中断就是定时器中断,只有定时器才能 ...

害!也对哈,糊涂了,都忘了这是两个会进入不同的中断号,感谢前辈一语点醒梦中人
作者: LUREN1    时间: 2022-10-11 16:38
谢谢各位前辈,问这么基础的问题,是我糊涂了,外部中断和计数器溢出器中断会进入不同中断号的中断函数,感谢各位提点




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1