关于CCP捕捉模块的程序,有问题,在线等,谢谢……
各位大侠。请帮忙看一下我的下面的程序,是关于pic16f873单片机ccp捕捉模块的,为什么我得到的结果不正确呢?我想得到的“t”的值为每个脉冲的相隔时间,单位是ms,晶振是10M的,非常感谢,菜鸟在线等……谢谢…… 也就是下面的截图,谢谢……
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607367YW3U5J.png
(原文件名:TM截图未命名.png) 具体是什么现象的问题?是不是你的被捕捉信号频率太低定时器已经溢出了?或者太高没法处理。 回复【2楼】liansh
-----------------------------------------------------------------------
t的值一直为0,应该不会,测试用的被捕捉的信号的周期为50ms,不会溢出的啊…… 10M下T1不分频溢出一次是26.214mS啊!
而且你的low是什么类型的,float还是INT,cp0z是一直为0吗? 回复【4楼】liansh
-----------------------------------------------------------------------
喔,我没有考虑到溢出的时间,如果用8分频应该可以吧。T1CON=0X30;
low和t都是float类型的…… 回复【5楼】zuoquan20
回复【4楼】liansh
-----------------------------------------------------------------------
喔,我没有考虑到溢出的时间,如果用8分频应该可以吧。t1con=0x30;
low和t都是float类型的……
-----------------------------------------------------------------------
反正在余量和测量精度间找个平衡点吧。
另外while(flag==1) 这样的写法会直接sleep的,因为程序第一遍执行到这里的时候可能信号捕捉都没发生。
截图里那个while(1)可以,但是要用flag判断,捕捉完成才执行,不然你那几句一直在循环, 回复【6楼】liansh
-----------------------------------------------------------------------
OK,问题解决了,谢谢各位啊…… 不太理解捕捉口是怎么设置的?
难道TRISC2=1;就是捕捉口了?
那么如果有程序几个按键也设为输入口,岂不都成捕捉口了? 学习学习,正为DSPIC的捕捉测频问题困扰。
页:
[1]