你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

方波波形,用IO模拟上升沿中断检测程序

[复制链接]
wdshuang09 提问时间:2018-12-29 22:02 /
一个方波波形,单片机一个IO口PA0去检测方波的上升沿,立刻控制PB0口输出高电平,上升沿只能用IO判断高低变化,不能用中断;
程序设计如下,用示波器观察,有时候会发现下降沿时PB0输出高电平,大部分都是上升沿PB0输出高电平的,请问上升沿检测程序是哪里不对造成的?
void ZeroCross_Task(void)
{        
        u16 timerout_cnt=0;
        LightCONTL.ZeroCross_flag=0;
        while(ZeroCross==1)//先检测0
        {
                if((timerout_cnt++)>(u16)47000)//超时时间
                {
                        LightCONTL.ZeroCross_flag=0;
                        return;
                }
        }
        timerout_cnt=0;
        while((ZeroCross==0))//检测1,即上升沿
        {
                if((timerout_cnt++)>(u16)47000)//超时时间
                {
                        LightCONTL.ZeroCross_flag=0;
                        return;
                }
        }
        LightCONTL.ZeroCross_flag=1;
}

收藏 评论4 发布时间:2018-12-29 22:02

举报

4个回答
toofree 回答时间:2018-12-30 12:57:40
没有去抖,
方波是从哪来的?
mmuuss586 回答时间:2018-12-30 13:24:27
while里面最好也加判断
五哥1 回答时间:2018-12-31 01:33:08
这个是有干扰,你要仔细地观察,出现问题的时候,各种硬件是否产生干扰,不用的管脚是否设为上拉输入?

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

wdshuang09 回答时间:2018-12-31 21:46:46
五哥1 发表于 2018-12-31 01:33
这个是有干扰,你要仔细地观察,出现问题的时候,各种硬件是否产生干扰,不用的管脚是否设为上拉输入? ...

在检测电平IO口上加一个小电容102,还是一样,会出现检测到下降沿触发,如果是干扰的话,不应该出现异常的时候每次都是在下降沿,不知道我程序设计逻辑是否有问题

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版