2171|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

AVRtiny13红外解码错哪了 [复制链接]

求求各位大神帮我看看这个程序错哪了,怎么出来的信号不对的,我发的是900us的起始码,1200us的逻辑0码,600us的逻辑1码,还有数据码和数据反码,最后是600us结束码

#include
uint8 key_data=0;
eeprom uint8 ee_temp=0xFF;
void timer_init(void) //定时器初始化
{
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000.000 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x01;
TCNT0=0xd1;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x02;
}
void main (void)
{
DDRB=0xef;
PORTB=0x0f;
PINB=0x10;
timer_init();
#asm("sei")

while (1){

     if(key_data >=0x01){
          key_data =0;
          RF_S1=0;
          delay_ms(500);
          RF_S1=1;
          delay_ms(500);
       }

}
}

interrupt [TIM0_OVF] void Timer0_ovf(void)
{
// interrupt time 50us
static uint8 flag = 0; // 标志位: 是否读到起始位
static uint8 read_cnt = 0;//低电平计数
static uint8 read_high_cnt = 0,data = 0,count=0;//高电平计数,数据,位码个数
  TCNT0=0xd1;//50um中断

if (flag == 0){
  if (IR_Signed == 0){
   read_cnt++;
  }else {
   if (read_cnt >=17){
    // 读到低电平大于17次(900us 至少读到17次)
    flag = 1;
   }
   read_cnt = 0;
  }
}else {
   if(IR_Signed == 0){
    read_high_cnt = 0;
    read_cnt++;
   }else{
    read_high_cnt++;
    if ((read_cnt >=11) && (read_cnt <=13)){
     data = (data<<1)+1;
     read_cnt = 0;
     count++;
    }else if ((read_cnt >=23) && (read_cnt <=25)){
     data = (data<<1);
     read_cnt = 0;
     count++;
    }
   
    if (count==6){
     read_high_cnt = 0;
     // 响应按键
     key_data = data;
     data = 0;
     count=0;
     flag = 0;
     }
    }
   }

}
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表