由于工作的缘故多功能遥控器是经常接触的 但是真的很少去动脑子去想下如何实现学习型
曾经做过一个 一体化接收头接收到数据的学习型 感觉毕竟是一体化接收头但是当时已经不是单纯的
学习就定向的处理为某种波形 而是记录所以高低电平变化时间 这个数组就已经很大了 这也是无法避免的 然后送到电脑(串口的)处理。实用是不实用的 是一个电脑接收器。
一体化是不能处理载波的这个大家都清楚 那么要连载波一起学习 这个时候就不能用一体化的
目前很多学习型都已经用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