PIC极限应用

2020-02-09 09:30发布

在一个小项目里面,用PIC16F913来主控,用来记录N个脉冲的时间,时间精确到10us,看了下资料,晶振可以最高20M     20M/4分频可以到5M。但是看了下第定时器的中断,软件模拟了下,进中断和出中断就要3.XX个US,如果加上脉冲捕获进中断的时间,一起的误差会不会超出10US的范畴???(思路是:一边捕获脉冲。一边开个5US的定时器片,一直累加。当脉冲捕获到N值时,关定时器。看定时了多少个5US)  刚接错PIC,不知道这样可行不?高手路过,喵喵。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
adszmc
1楼-- · 2020-02-10 11:30
回复【4楼】su_mj000
可以将脉冲作为计数器外部事件。第一个脉冲进入时,设定计数器,并启动另一个时钟(不开中断,每5us递增1)。
n个脉冲进入时,计数器中断,读取时钟数值。此法适用于总计时不超过时钟的最大值。

-----------------------------------------------------------------------

这方法是很好,但是她的应用与总共N个脉冲的时间值不超过时钟的最大值,我这个是50HZ左右的脉冲,而且有时会出现10HZ的。假如1000个脉冲的话,时间早超出了超过时钟的最大值。
adszmc
2楼-- · 2020-02-10 15:16
回复【5楼】oufuqiang 欧福强
4楼方法可行,而且时间精度高。如果超出定时器范围可以软件辅助的。我做超声波的时候就是用定时器来计时,可计几百ms,分辨率1us。
-----------------------------------------------------------------------

你好,如果软件辅助如何辅助?我想不到点子上?请指点下  :)
xk376632352
3楼-- · 2020-02-10 19:20
5楼的方法不错。软件辅助?是在中断外查询定时中断标志?
楼主为什么开5US的定时器片,不太明白,是因为时间精确到10us的缘故吗?
继续等DX解答~~~
eworker
4楼-- · 2020-02-11 00:40
 精彩回答 2  元偷偷看……
adszmc
5楼-- · 2020-02-11 06:30
回复【9楼】xk376632352
5楼的方法不错。软件辅助?是在中断外查询定时中断标志?
楼主为什么开5us的定时器片,不太明白,是因为时间精确到10us的缘故吗?
继续等dx解答~~~
-----------------------------------------------------------------------

开5us的定时器片  正式因为要求10us的时间精度。。
su_mj000
6楼-- · 2020-02-11 11:05
如果脉冲频率很慢,可以借助软件定时,即开启定时器溢出中断,中断时软件计数加1.
定时器应该设置成循环方式。

这样一来,中断源增加到2个。PIC16只有一个中断入口,所以中断时应先查计数,后查
定时。中断延时误差是个常数,可以用软件修正。

一周热门 更多>