关于CCP捕捉模块的程序,有问题,在线等,谢谢……

2020-02-06 10:23发布

各位大侠。请帮忙看一下我的下面的程序,是关于pic16f873单片机ccp捕捉模块的,为什么我得到的结果不正确呢?
我想得到的“t”的值为每个脉冲的相隔时间,单位是ms,晶振是10M的,非常感谢,菜鸟在线等……谢谢……
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
zuoquan20
1楼-- · 2020-02-06 15:50
也就是下面的截图,谢谢……


(原文件名:TM截图未命名.png)
liansh
2楼-- · 2020-02-06 21:34
具体是什么现象的问题?是不是你的被捕捉信号频率太低定时器已经溢出了?或者太高没法处理。
zuoquan20
3楼-- · 2020-02-06 23:05
 精彩回答 2  元偷偷看……
liansh
4楼-- · 2020-02-06 23:58
10M下T1不分频溢出一次是26.214mS啊!
而且你的low是什么类型的,float还是INT,cp0z是一直为0吗?
zuoquan20
5楼-- · 2020-02-07 03:01
回复【4楼】liansh  
-----------------------------------------------------------------------

喔,我没有考虑到溢出的时间,如果用8分频应该可以吧。T1CON=0X30;
low和t都是float类型的……
liansh
6楼-- · 2020-02-07 06:49
回复【5楼】zuoquan20  
回复【4楼】liansh  
-----------------------------------------------------------------------

喔,我没有考虑到溢出的时间,如果用8分频应该可以吧。t1con=0x30;
low和t都是float类型的……
-----------------------------------------------------------------------

反正在余量和测量精度间找个平衡点吧。
另外while(flag==1) 这样的写法会直接sleep的,因为程序第一遍执行到这里的时候可能信号捕捉都没发生。
截图里那个while(1)可以,但是要用flag判断,捕捉完成才执行,不然你那几句一直在循环,

一周热门 更多>