打印

这个波形如何检测啊??进IO口

[复制链接]
2233|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zifeiyuuuu 于 2009-8-31 16:33 编辑

输入正常时,是一个正常的方波,若输入有问题,则变成一个高电平,输入一共有三路(三相的),检测一路有问题则选另外2路中的一路,
本来是想计数计数2个中断之间的技术值,当计数值为0,说明无输入就切换,现在发现如果输入有问题的话,根本就进不了中断,不能设置标志位, 一直在  while(int01_flag==0);这个地方陷入死循环了,请问在这个循环之前有没有什么简单的办法,检查输入是否正常,不采样频率信号?采样频率由后面中断和计数器去做,  不管是大侠,老鸟,菜鸟,你们见多识广,总比我方法多一些了,谢谢了,,,,,,,,,,,  

相关帖子

沙发
zifeiyuuuu|  楼主 | 2009-8-31 16:33 | 只看该作者
我想到了, 用T0口有负跳变,计数器0的计数值加1,由(TH0*256+TL0)的值即可以判断输入信号时一个方波,还是一个持续高电平,

不过这个方法比较繁琐,不知道有没有更加简单的方法,,  呵呵呵。。。。

使用特权

评论回复
板凳
LYXQ| | 2009-8-31 16:36 | 只看该作者
方波频率多大?如果是50HZ检测交流电,那就再定时期里检测电平是否变化就可以了。例如连续8个定时周期没有变化,则认为没有脉冲。定时周期应不应大于方波周期的1/4。

使用特权

评论回复
地板
zifeiyuuuu|  楼主 | 2009-8-31 16:51 | 只看该作者
频率不定,60到200HZ都有,,,

呵呵 ,,,

使用特权

评论回复
5
jiuri| | 2009-8-31 16:59 | 只看该作者
小弟认为以最慢时频率算出最长时间,在这时间过后去看IO口状态应该可以了吧。看IO口状态的时间要用“最慢频率的最快时间”。
不知道对不对,小弟也是初学哦

使用特权

评论回复
6
zifeiyuuuu|  楼主 | 2009-8-31 17:01 | 只看该作者
呵呵,这个貌似涉及到时序问题了,,,,, 不过 可以试试。。。

使用特权

评论回复
7
zifeiyuuuu|  楼主 | 2009-9-2 10:57 | 只看该作者
本帖最后由 zifeiyuuuu 于 2009-9-2 10:58 编辑

楼上说的,可不可以这样实现,
信号进来的端口为p1_1,   随便设置一个变量n=0;

在检测波形子程序中加

if(P1_1==0)
n++;
当有一个低电平的时候,n加1, 时间可以给长点,毕竟可能时序不一定一致
由n的值去判断,是否有方波进来,n=0;持续高电平,当n>某个数的时候,就知道是个方波了 当然这个不能很精确的知道其频率, 只是用于去判断是否是一个方波,还是持续的一个高电平,,,

使用特权

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

本版积分规则

12

主题

96

帖子

0

粉丝