发新帖我要提问
12
返回列表
打印

大大们看下红外发射的程序有木有什么问题

[复制链接]
楼主: wonderfri
手机看帖
扫描二维码
随时随地手机跟帖
21
wonderfri|  楼主 | 2013-8-5 17:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
#include <msp430g2553.h>
#define CPU_F ((double)1000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
void ir_open();
void ir_start();
void ir_send_byte(unsigned char c);
void ir_end();
void ir_put(unsigned char c);

void ir_open()
{
         TACTL |=TASSEL_2+TACLR+MC_1;
         TACCTL1 |= OUTMOD_7;
         CCR0=26;
         CCR1=13;
  P1DIR |= BIT2;
  P1SEL |= BIT2;

}

void ir_start()
{
P1SEL|=BIT2;
  delay_us(9000);

P1SEL&=~BIT2;
  delay_us(4500);
}



void ir_send_byte(unsigned char c){
  unsigned char i;

  for(i = 0; i != 8; ++i)
  {
          P1SEL|=BIT2;
    delay_us(560);

    P1SEL&=~BIT2;
    if(c&0x01){
      delay_us(1685);
    }
    else{
      delay_us(565);
    }

    c >>= 1;
  }
}

void ir_end()
{
        P1SEL|=BIT2;
  delay_us(650);
  P1SEL&=~BIT2;
  delay_ms(40);
}

void ir_put(unsigned char c)
{
  ir_start();
  ir_send_byte(0x00);
  ir_send_byte(0xff);
  ir_send_byte(c);
  ir_send_byte(~c);
  ir_end();
}

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  DCOCTL=CALDCO_1MHZ;
  BCSCTL1=CALBC1_1MHZ;
  ir_open();



  while(1){

    ir_put(0x04);
P1OUT|=BIT2;
    delay_ms(1000);
  }

}


IMG_20130805_144340.jpg (4.5 MB )

接收头输出信号波形

接收头输出信号波形

IMG_20130805_144746.jpg (4.63 MB )

IMG_20130805_144746.jpg

使用特权

评论回复
22
wonderfri|  楼主 | 2013-8-5 17:21 | 只看该作者
参考别人的程序修改了下 终于可以发送数据了 好激动 大大们看下还有哪些地方不对或哪里需要修改吗

使用特权

评论回复
23
dirtwillfly| | 2013-8-5 19:14 | 只看该作者
恭喜

使用特权

评论回复
24
wonderfri|  楼主 | 2013-8-5 21:32 | 只看该作者
dirtwillfly 发表于 2013-8-5 19:14
恭喜

谢谢版主的 陪伴 与支持啊

使用特权

评论回复
25
epherun| | 2013-12-5 17:14 | 只看该作者
我也想做个红外发射程序谁能给个参考最好1T单片机QQ253708753

使用特权

评论回复
26
pmp| | 2013-12-5 22:01 | 只看该作者
中断问题吧。

使用特权

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

本版积分规则