【探讨】学习型多功能红外遥控器实现--- 09.06

本文讨论了如何实现学习型多功能红外遥控器,包括处理载波、记录高低电平变化时间、数据压缩等方面。选用AVR MCU处理38KHz附近的载波,通过中断触发记录信号。在数据压缩方面,提出了预设判断程序识别不同波形的方法,并将存储数据精简到8个字节。最后,作者期待与读者共同探讨更优的实现方案。
摘要由CSDN通过智能技术生成

    由于工作的缘故多功能遥控器是经常接触的 但是真的很少去动脑子去想下如何实现学习型

曾经做过一个 一体化接收头接收到数据的学习型 感觉毕竟是一体化接收头但是当时已经不是单纯的

学习就定向的处理为某种波形 而是记录所以高低电平变化时间 这个数组就已经很大了 这也是无法避免的 然后送到电脑(串口的)处理。实用是不实用的 是一个电脑接收器。

一体化是不能处理载波的这个大家都清楚 那么要连载波一起学习 这个时候就不能用一体化的

目前很多学习型都已经用IR-LED一体接收发射 突然想用这个来做个

涉及到得问题:

1.载波的处理

恩 毕竟载波基本在38K附件浮动,那么一个载波波形在26US浮动,因而MCU要尽量快点,选用AVR就可以了,51的误差可能大点。

使能一个中断脚 下降沿触发 INT0, 那么当有信号时触发进入中断

SIGNAL(INT0_vect)
{
if(q_flag_h==1)
TCCR0|=0X05; //开启定时器0 多少分频暂且不管 注意第一次测得是载波 所以分频不要高
else
TCCR0|=0X01; //没有测载波 和测完载波 后的 分频是不一样的

TCCR2&=0X00;
if(q_flag_l==1) //保存载波低电平
{
q_data_l=TCNT2;
q_flag_l=0; //只记录一次 之后不会再记 故设此标记
}
if(q_flag_h==1) //测完载波就要判断低电平时间
{
if((TCNT2>100)&&(TCNT2<200)) //过长说明TF内波形完成
{
// 记录好一个0或者1 
DATA[count]=TCNT0;
DATA[count+1]=TCNT2;
TCNT0=0;
count
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值