脉冲计数

[复制链接]
1861|43
lizye 发表于 2022-6-9 19:47 | 显示全部楼层
加个计数器 芯片
liliang9554 发表于 2022-6-9 19:48 | 显示全部楼层
15HZ的定时器采样怎么会丢失?
wyjie 发表于 2022-6-9 19:51 | 显示全部楼层
你把定时器设定为1MS或则5MS中断,并对电平信号进行多次采样,连续采集到3次(假定)确认即可
yszong 发表于 2022-6-9 19:53 | 显示全部楼层

真不太好弄,扫描慢了容易丢脉冲,快了容易重判。
zwll 发表于 2022-6-9 19:55 | 显示全部楼层
考虑一下加硬件吧,触发器什么的。
llljh 发表于 2022-6-9 19:57 | 显示全部楼层

这么慢一个信号,甚至比普通按键输入还简单
heweibig 发表于 2022-6-9 19:59 | 显示全部楼层
定时器扫描,或者主循环扫描,随便都能把它扫到
spark周 发表于 2022-6-9 20:02 | 显示全部楼层
IO持续轮询吧
heweibig 发表于 2022-6-9 20:04 | 显示全部楼层
根据你脉冲的最小高电平或低电平时间的一半来查询,绝不丢失。
yszong 发表于 2022-6-9 20:06 | 显示全部楼层
假设你脉冲的最小高电平是1ms,最小低电平是200us,则使用100us查询,只要保证你的查询速度是均匀的100us,就不会丢失。
yszong 发表于 2022-6-9 20:09 | 显示全部楼层
IO口查询+IO电平变化或边沿变化判断脉冲,.
stly 发表于 2022-6-9 20:12 | 显示全部楼层
过采样就可以了
llljh 发表于 2022-6-9 20:15 | 显示全部楼层
sbit p36=P3^6;
bit l_p36;
uint js=0;
//定时器初始化省略
void intt0() interrupt 1 using 1//100us
{
if(p36==1){l_p36=1;}
else{
     //下降沿检测
     if(l_p36==1){js++;}
     l_p36=0;
     }
}
pengf 发表于 2022-6-9 20:16 | 显示全部楼层
别纠结,检查你的程序
dengdc 发表于 2022-6-9 20:18 | 显示全部楼层
将代码贴出来,看看咋回事。
stly 发表于 2022-6-9 20:24 | 显示全部楼层
软件计数,频率低问题不大
 楼主| langgq 发表于 2022-6-9 20:27 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家
tpgf 发表于 2022-7-3 09:52 | 显示全部楼层
单片机还有其他硬件功能可以识别高低电平变化吗?
chenjun89 发表于 2022-7-3 09:53 来自手机 | 显示全部楼层
循环查询法
nawu 发表于 2022-7-3 09:55 | 显示全部楼层
大部分都是定时器吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0