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

方波波形,用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个回答
七哥 回答时间: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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版