找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7|回复: 0
打印 上一主题 下一主题
收起左侧

单片机I/O端口采集或输出信号时,出现随机的时延现象,该如何解决?

[复制链接]
跳转到指定楼层
楼主
使用南翔单片机(九齐代理)读取全数字红外探头的输出信息
单片机引脚需要按时序输出上升沿(作为触发信号),然后切换为采集模式,按位接收红外探头发送的信息

单独做红外模块采集时,南翔单片机可以正常地触发并采集信息
读取代码如下:

  for(i = 0; i < 19; i++)
    {   
        IOSTA = 0x3F;                // PA6输出模式
                                             // 1011 1111
        PIR = 0;                         // 拉低 4us 左右
        NOP();
        
        PIR = 1;                         // 拉高 4us 左右
        NOP();
   
        IOSTA = 0x7F;                // PA6输入模式
                                             // 0111 1111
        date <<= 1;
        if(PIR == 1)
        date |= 0x01;
        PIR = 0;
    }


引脚波形图如下:




当我把红外采集模块的代码集成到系统中时,引脚波形出现了异常的延迟现象,并且有不明的拉高或拉低现象
异常波形如下:

         


系统主要使用了ADC采样功能和PWM输出功能,主体是一个while状态机,中断系统只启用了定时器用作计时功能
代码较多,就不一一列出,如有需要我可以补充在楼下

请大佬帮忙分析一下,这种异常的时延现象是如何出现的,该怎么解决?感谢


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表