打印

mega88外部中断问题

[复制链接]
2295|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
夏日飞鹰|  楼主 | 2011-9-18 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
NE5532| | 2011-9-18 09:53 | 只看该作者
可能是中断响应不过来或者数据线上的信号质量问题,还可能是采样点的问题。

楼主的原理没有错,这样来调这个程序

首先拿个端口,每次进INT中断就取反一次,观察这个端口能否被取反48次
再者在每位读时候取反端口,双踪观察采样点是否在数据的中点上

另外提醒这种协议要注意容错,否则被一个脉冲干扰了,后面永远都不对。

使用特权

评论回复
板凳
夏日飞鹰|  楼主 | 2011-9-19 21:00 | 只看该作者
按照LS老师的指点,做了如下最简单的程序,可仍然只能数14或15个脉冲,真不知是不是什么地方设置不对,请大家指点,谢谢了!
SIGNAL(SIG_INTERRUPT0)//外部中断0,用来数脉冲,最后在主程序里显示出脉冲数
  {
     count=count+1;
    seg_l=count/10;
    seg_r=count%10;
  }
SIGNAL(PCINT0_vect)//电平变化中断,当变为低电平时启动外部中断0,开始数脉冲,否则就关断中断并脉冲清零
   {
   if((PINB|(~CHIP1))==(~CHIP1))
     {
      EIMSK=0x01;         
     }
   else
   {
      EIMSK=0x00;
      count=0;
   }
   }

使用特权

评论回复
地板
NE5532| | 2011-9-19 21:59 | 只看该作者
按我说的取反端口来做,不要用你的程序,一个事情弄复杂了以后你无法掌控。

使用特权

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

本版积分规则

35

主题

239

帖子

0

粉丝