打印
[应用相关]

收管有电平型与脉冲型怎么区分?

[复制链接]
725|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiqi1|  楼主 | 2017-6-12 20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在调试一个红外接收时遇到一个问题想请教下大家
    网上资料说接收管有电平型与脉冲型怎么区分?
沙发
androidbus| | 2017-6-12 20:37 | 只看该作者
详细说说你得项目

使用特权

评论回复
板凳
feiqi1|  楼主 | 2017-6-12 20:38 | 只看该作者
问题点1:其它程序都关闭只调试红外。全速运行行,手一遮档,P1.0有低脉冲示波器测得 不档P1.0一直为高电平。
   
        在仿真程序时,在外部中断里设置一个断点,全速运行程序,一直可以进入中断
       (为什么不用手档就可以进入)为什么?
示波器测P1.0有脉冲产生
        我把接收管P1.0脚与PCB分离,分别测PCB上面的P1.0为高电平,接收管out脚  也为高电平。当手一档,接收管脚会有脉冲。
void  main(void)
{
  WDTCTL = WDTPW + WDTHOLD;//关闭WDT
  uchar i;
  P1DIR=P1DIR|0xf2;
  P1SEL=0x00;

  P1IES &= ~BIT0;
  P1IE|=BIT0;
  P1IFG=0x00;
_EINT();//开全局中断
  while(1)
  {
   
    for(i=0;i<10;i++)
   {
     
    START_TRAMIT_INFRARED;
    delay_us(15);
    STOP_TRAMIT_INFRARED;
    delay_us(4);  
   }
  }
}

#pragma vector=PORT1_VECTOR
__interrupt void P1_irq(void)
{
   _DINT();
if(P1IFG&BIT0)
  {
    flagIrq++;
    if(flagIrq>2) flagIrq=1;
                  
  }
  
   P1IFG=0x00; //每个标志必须在它自己的中断服务程序中复位
   _EINT();
}

使用特权

评论回复
地板
litengg| | 2017-6-12 20:44 | 只看该作者
不懂 为什么在主程序加一个延时,接收管脚OUT会有一个脉冲?

使用特权

评论回复
5
qiangweii| | 2017-6-12 20:46 | 只看该作者
把接收管头遮住也有吗?

使用特权

评论回复
6
shashaa| | 2017-6-12 20:53 | 只看该作者
void  main(void)
{
  WDTCTL = WDTPW + WDTHOLD;//关闭WDT
  P1DIR=0xf2;  // 1111 0010
  P1SEL=0x00;
  while(1)
  {
  
     
for(i=0;i<10;i++)
{
    START_TRAMIT_INFRARED;
    delay_us(15);
    STOP_TRAMIT_INFRARED;
    delay_us(4);
}
  delay_ms(1000);
}
}

使用特权

评论回复
7
xia00| | 2017-6-12 20:57 | 只看该作者
不管你是电平还是脉冲,一般来说中断设置为边沿方式最好,如果中断为电平方式就会一直进入中断。。

使用特权

评论回复
8
hfdy01| | 2017-6-12 21:03 | 只看该作者
加强抗干扰和误动判断

使用特权

评论回复
9
CallReceiver| | 2017-6-12 21:07 | 只看该作者
如果设置成沿中断的。请问下怎么处理可以:加强抗干扰和误动判断

使用特权

评论回复
10
boy1990| | 2017-6-12 21:14 | 只看该作者
你需要用延时或对信号持续时间判断,因为抖动比人动作快。。

使用特权

评论回复
11
sourceInsight| | 2017-6-12 21:18 | 只看该作者
接收信号不是都是接收你发送的中断信号吗?

使用特权

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

本版积分规则

424

主题

1616

帖子

1

粉丝