[其它应用] 这两相差这么大?

[复制链接]
1290|14
 楼主| huanghuac 发表于 2022-5-14 21:28 | 显示全部楼层 |阅读模式
用SH79F161A的 T2/INTO脚检测外部频率。用定时器2的方式0---:“16位捕捉”。计数源选择:T2口外部源。
unsigned int  NUM;

.....
NUM=TH2;
NUM<<=8;
NUM+=TL2;

现在“NUM--程序检测值” 和 “-外部真实频率”  相差很大.
happy_10 发表于 2022-5-14 21:31 | 显示全部楼层
有多大
 楼主| huanghuac 发表于 2022-5-14 21:33 | 显示全部楼层
外部真实频率只有20K~30K,说对16位(65535)定时器不会溢出。
jlyuan 发表于 2022-5-14 21:36 | 显示全部楼层
有图吗?
 楼主| huanghuac 发表于 2022-5-14 21:39 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
huangchui 发表于 2022-5-14 21:41 | 显示全部楼层
直接读TH2,THL2?
 楼主| huanghuac 发表于 2022-5-14 21:44 | 显示全部楼层
直接读TH2,THL2就行了,是不是与没用捕捉有关。
juventus9554 发表于 2022-5-14 21:47 | 显示全部楼层

不知道你是怎么计算的。
T2EX灌入需要检测的波形,EXEN2为1,Timer2用system clock计数,当T2EX下降沿来了后,会将TL2,TH2存入RCAP2L, RCAP2H, 并且产生中断,当T2EX又来了后,又会将TL2,TH2存入RCAP2L, RCAP2H,计算两次的差值,就是要检测的波形的周期了
 楼主| huanghuac 发表于 2022-5-14 21:50 | 显示全部楼层
能不能直接读TL2,TH2寄存器。因为我是用T2口做为计数器2(TH2,TL2)的计数源。
chuxh 发表于 2022-5-14 21:57 | 显示全部楼层
T2接被测信号?读出来也没有用啊,只能知道现在记了多少个被测信号clock了,难道你用另外一个定时器去定时一个固定的时间?
dingy 发表于 2022-5-14 21:59 | 显示全部楼层
而且你读出来也没有用,高位低位不是同时读出来的,所以会不准。
 楼主| huanghuac 发表于 2022-5-14 22:02 | 显示全部楼层
是的。我用定时器0作时间基准,每0.2S,读一下TH2,TL2的数据。
 楼主| huanghuac 发表于 2022-5-14 22:05 | 显示全部楼层

我原本想问:在TR2=0停止计数后,可否不用捕获,而直接读TH2,TL2中数据.
现在测试后,好像可以。
 楼主| huanghuac 发表于 2022-5-14 22:07 | 显示全部楼层
唉,还是没有什么结果,算了,多谢大家啦
cyclefly 发表于 2022-6-3 10:24 | 显示全部楼层
不应该的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

772

主题

8473

帖子

6

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