请教大家单片机IO口监测问题

[复制链接]
2720|7
 楼主| maowang300miao 发表于 2010-6-23 09:42 | 显示全部楼层 |阅读模式
大家好,我是单片机菜鸟,现在有个问题想请教大家。就是我有一个传感器输出3.3V,100ms脉宽的矩形波,我想用单片机检测这个矩形波的高低电平变化,每次检测到高电平就让计数加1,怎么用C语言实现呢?烦请大家给个例子好吗,不胜感谢!
ayb_ice 发表于 2010-6-23 10:35 | 显示全部楼层
调用间隙小于100ms
bit b;
uchar counter;

void test(void)
{
    bit b2;

    b2 = SENSOR;
    if(b2!= b){
        counter++;
    }
    b = b2;
}
 楼主| maowang300miao 发表于 2010-6-23 13:31 | 显示全部楼层
谢谢你,但是我想问为什么没有用到while循环啊?这样监测完一次电平变化后不就停下了吗? 2# ayb_ice
ayb_ice 发表于 2010-6-23 14:02 | 显示全部楼层
循环调用即可
那是你的事
dami 发表于 2010-6-23 14:14 | 显示全部楼层
查询,中断,定时都可以用上.还要注意滤除干扰.
ljhtj 发表于 2010-6-23 17:00 | 显示全部楼层
用中断比较好。
 楼主| maowang300miao 发表于 2010-6-24 09:28 | 显示全部楼层
一般单片机只有两个中断呀,我有四个口需要监测
ayb_ice 发表于 2010-6-24 09:41 | 显示全部楼层
你这要求不高,完全可以查询处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

49

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部