打印

定时器2设置的问题

[复制链接]
1547|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenfen|  楼主 | 2012-2-21 22:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用SH79F161A的 T2/INTO脚检测外部频率。用定时器2的方式0---:“16位捕捉”。计数源选择:T2口外部源。
unsigned int  NUM;

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

现在“NUM--程序检测值” 和 “-外部真实频率”  相差很大.
沙发
tian111| | 2012-2-21 22:42 | 只看该作者
有多大

使用特权

评论回复
板凳
wenfen|  楼主 | 2012-2-21 22:44 | 只看该作者
外部真实频率只有20K~30K,说对16位(65535)定时器不会溢出。

使用特权

评论回复
地板
huwr| | 2012-2-21 22:47 | 只看该作者
有图吗?

使用特权

评论回复
5
wenfen|  楼主 | 2012-2-21 22:51 | 只看该作者

使用特权

评论回复
6
chenho| | 2012-2-21 22:54 | 只看该作者
直接读TH2,THL2?

使用特权

评论回复
7
wenfen|  楼主 | 2012-2-21 23:01 | 只看该作者
直接读TH2,THL2就行了,是不是与没用捕捉有关。

使用特权

评论回复
8
chenho| | 2012-2-21 23:03 | 只看该作者
不知道你是怎么计算的。
T2EX灌入需要检测的波形,EXEN2为1,Timer2用system clock计数,当T2EX下降沿来了后,会将TL2,TH2存入RCAP2L, RCAP2H, 并且产生中断,当T2EX又来了后,又会将TL2,TH2存入RCAP2L, RCAP2H,计算两次的差值,就是要检测的波形的周期了

使用特权

评论回复
9
wenfen|  楼主 | 2012-2-21 23:06 | 只看该作者
能不能直接读TL2,TH2寄存器。因为我是用T2口做为计数器2(TH2,TL2)的计数源。

使用特权

评论回复
10
chenho| | 2012-2-21 23:08 | 只看该作者
T2接被测信号?读出来也没有用啊,只能知道现在记了多少个被测信号clock了,难道你用另外一个定时器去定时一个固定的时间?

使用特权

评论回复
11
chenho| | 2012-2-21 23:08 | 只看该作者
而且你读出来也没有用,高位低位不是同时读出来的,所以会不准。

使用特权

评论回复
12
wenfen|  楼主 | 2012-2-21 23:11 | 只看该作者
是的。我用定时器0作时间基准,每0.2S,读一下TH2,TL2的数据。

使用特权

评论回复
13
wenfen|  楼主 | 2012-2-21 23:15 | 只看该作者
我原本想问:在TR2=0停止计数后,可否不用捕获,而直接读TH2,TL2中数据.
现在测试后,好像可以。

使用特权

评论回复
14
wenfen|  楼主 | 2012-2-21 23:17 | 只看该作者
结贴了,谢谢大家

使用特权

评论回复
15
SNGSN| | 2012-2-22 11:58 | 只看该作者
路过  刚来学习的 觉行好难
1# wenfen

使用特权

评论回复
16
tylhc002| | 2012-2-25 14:46 | 只看该作者
1# wenfen

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝