标题:
Arduino红外线,无线解码程序样板
[打印本页]
作者:
xjbworld
时间:
2024-1-20 11:19
标题:
Arduino红外线,无线解码程序样板
解码原理,利用arduino的微秒函数,通过端口中断(上升源,下降源),得到时间,就可以解码波形
void subir_decode(void)
{
volatile static unsigned long timerf,timerf1,timerf2;
volatile static unsigned long wcdata_decode,bkdata;
volatile static u8 wcshift,bit_enable_rx ;
timerf2 = micros() ;
timerf = 0 ;
//digitalWrite(LED_BLUE, !digitalRead(LED_BLUE));
if(timerf2>timerf1)
{
timerf = timerf2-timerf1 ;
}
timerf1 = timerf2 ;
if((timerf>5000)&&(timerf<20000))
{
// digitalWrite(LED_BLUE, !digitalRead(LED_BLUE));
//Serial.write(timerf/100);
wcshift = 31 ;
// wcdata_decode = 0x00 ;
}
else
{
if(timerf<1800)
{
wcdata_decode = wcdata_decode&0xfffffffe ;
}
else
{
wcdata_decode = wcdata_decode|0x00000001 ;
}
if(wcshift>0)
{
wcshift-- ;
wcdata_decode = wcdata_decode<<1 ;
}
else
{
bfirok = 1 ;
wcirdecode = wcdata_decode ;
bkdata = wcdata_decode ;
wcshift = 255 ;
// Serial.write((wcdata_decode&0x00ff0000)>>16);
// Serial.write((wcdata_decode&0x0000ff00)>>8);
// Serial.write((wcdata_decode&0x000000ff));
}
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1