📄 comm_remote.h
字号:
}
break;
default :
remote_status=remote_phase_err;
tb0s=0;
tb0ic=0;
}
break;
// yao kong qi
case remote_phase_yaokong:
switch(remote_status_yaokong)
{
case REMOTE_YAOKONG_3617:
if(pin_irrx==0) //low end code
{
remote_status=remote_phase_start;
remote_status_start=remote_start_1;
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=0;
tb0s=0;
int3ic=7;
}
else
{
remote_status_yaokong=REMOTE_YAOKONG_225;
tb0s=0;
tb0ic=0;
tb0mr=0x00; //01
tb0=22500;//22818-1500; // pian 1500
len_bit_remote=0;
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=0;
tb0s=0;
tb0ic=7;
tb0s=1;
}
break;
case REMOTE_YAOKONG_225:
if(pin_irrx==1) //pin_irrx==0
{
tb0s=0;// judge first bit =0
tb0ic=0;
remote_status=remote_phase_err;
}
else
{
len_bit_youxiao=31;// remain 31 bit
len_bit_remote=1;
remote_status_yaokong=REMOTE_YAOKONG_1125a;
tb0s=0;
tb0ic=0;
tb0mr=0x00; //01
remote_rec2.bit.b7=pin_irrx;
tb0=11250;// time 1125 us(bit to bit)
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=7;
tb0s=1;
}
break;
case REMOTE_YAOKONG_2000: // finish rec
if((RREMOTE_YAOKONG_BUFFER[0]==0x00)
&&(RREMOTE_YAOKONG_BUFFER[1]==0xaa)
&&(RREMOTE_YAOKONG_BUFFER[2]==0xaa))
RREMOTE_YAOKONG_BUFFER[9]=1;
else
remote_status=remote_phase_err;
tb0s=0;
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=0;
int3ic=7;
tb0s=0;
break;
case REMOTE_YAOKONG_1125a: // rec 31 bit
len_bit_remote=len_bit_remote+1;
remote_rec2.byte=remote_rec2.byte>>1;
remote_rec2.bit.b7=pin_irrx; //p5_0
if((remote_rec2.bit.b7==0)&&(len_bit_youxiao!=0))
len_bit_youxiao=len_bit_youxiao-1;
switch(len_bit_remote)
{
case 8:
RREMOTE_YAOKONG_BUFFER[0]=remote_rec2.byte;
break;
case 16:
RREMOTE_YAOKONG_BUFFER[1]=remote_rec2.byte;
break;
case 24:
RREMOTE_YAOKONG_BUFFER[2]=remote_rec2.byte;
break;
case 32:
RREMOTE_YAOKONG_BUFFER[3]=remote_rec2.byte;
break;
case 40:
RREMOTE_YAOKONG_BUFFER[4]=remote_rec2.byte;
break;
case 48:
RREMOTE_YAOKONG_BUFFER[5]=remote_rec2.byte;
break;
case 56:
RREMOTE_YAOKONG_BUFFER[6]=remote_rec2.byte;
break;
case 64:
RREMOTE_YAOKONG_BUFFER[7]=remote_rec2.byte;
break;
}
if((len_bit_remote>=64)||(len_bit_youxiao==0))
{
if((8*(len_bit_remote/8)!=len_bit_remote))
{
remote_rec2.byte=remote_rec2.byte>>1;
remote_rec2.bit.b7=1;
RREMOTE_YAOKONG_BUFFER[len_bit_remote/8]=remote_rec2.byte;
}
remote_status_yaokong=REMOTE_YAOKONG_2000;
tb0mr=0x00; //01
tb0=40000; //01
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=7;
tb0s=1;
}
break;
default:
tb0ic=0;
remote_status=remote_phase_err;
}
break;
case remote_phase_send:
break;
default:
tb0ic=0;
break;
}
}
//hong wai yao kong chu li zu cheng xu
void chuli_remote()
{union remote_use
{
unsigned long l;
unsigned char a[4];
}b;
unsigned char c;
if((yaokong_chaoshi_timer>=max_yaokong_chaoshi_timer)||(rtime_yaokong_rec>=max_time_rec_yaokong))
{
rtime_yaokong_rec=0;
RLEN_REMOTE_YAOKONG=0;
remote_status=remote_phase_start;
yaokong_chaoshi_timer=0;
tb0ic=0;
tb0s=0;
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=0;
tb0s=0;
int3ic=7;
}
else
{
if(RDUOJIAN_SECOND!=RSOFT_RTC_SECOND)
{
RDUOJIAN_SECOND=RSOFT_RTC_SECOND;
if(RYAOKONG_DUOJIAN_TIMER==1)
{
RYAOKONG_DUOJIAN_TIMER=RYAOKONG_DUOJIAN_TIMER-1;
RSTATUS_DUOJIAN=NODUOJIAN;
}
else
if(RYAOKONG_DUOJIAN_TIMER>0)
RYAOKONG_DUOJIAN_TIMER=RYAOKONG_DUOJIAN_TIMER-1;
}
if(RREMOTE_YAOKONG_BUFFER[9]==1)
{
RREMOTE_YAOKONG_BUFFER[9]=0;
light_time=180;
b.a[3]=0;
b.a[2]=RREMOTE_YAOKONG_BUFFER[3];
b.a[1]=RREMOTE_YAOKONG_BUFFER[4];
b.a[0]=RREMOTE_YAOKONG_BUFFER[5];
switch(b.l)
{
case 0xaaaa:
doyaokongremote(1);
break; // 1
case 0x02a8aa:
doyaokongremote(2);
break; // 2
case 0x04a4aa:
doyaokongremote(3);
break; // 3
case 0x0aa0aa:
doyaokongremote(4);
break; // 4
case 0x0894aa:
doyaokongremote(5);
break; // 5
case 0x1290aa:
doyaokongremote(6);
break; // 6
case 0x1488aa:
doyaokongremote(7);
break; // 7
case 0x2a80aa:
doyaokongremote(8);
break; // 8
case 0x1054aa:
doyaokongremote(9);
break; // 9
case 0x2250aa:
doyaokongremote(0);
break; // 0
case 0x2448aa:
doyaokongduokey(1);
break; // -1
case 0x4a40aa:
doyaokongduokey(2);
break; // -2
case 0x2828aa:
doyaokongduokey(3);
break; // -3
case 0x4a81a8:
doyaokongduokey(4);
break; // -4
case 0xaa02a8:
doyaokongduokey(5);
break; // -5
case 0x9410a9:
doyaokongduokey(6);
break; // -6
case 0x5421a8:
doyaokongduokey(7);
break; //-7
case 0x9220a9:
doyaokongduokey(8);
break; //-8
case 0x50a8a8:
RDISPLAY_ENVENT=DISPLAY_ENVENT_OPENCLOSE;
RSTATUS_DUOJIAN=NODUOJIAN;
break; //power
case 0xa2a0a8:
RDISPLAY_ENVENT=DISPLAY_ENVENT_POINTADD;
RSTATUS_DUOJIAN=NODUOJIAN;
break; //+
case 0xa490a8:
RDISPLAY_ENVENT=DISPLAY_ENVENT_POINTSUB;
RSTATUS_DUOJIAN=NODUOJIAN;
break; //-
case 0x2054a9:
RDISPLAY_ENVENT=DISPLAY_ENVENT_KEY;
RSTATUS_DUOJIAN=NODUOJIAN;
if(RLCD_DISPLAY_STATUS!=DISPLAY_KEY)
if(RFLAG_B_A_KU==1)
set_reference_value(END_REFERENCE);
break; //trun
case 0xaa00aa:
RDISPLAY_ENVENT=DISPLAY_ENVENT_DATE;
RSTATUS_DUOJIAN=NODUOJIAN;
break; //clock
}
RLEN_REMOTE_YAOKONG=0;
RREMOTE_YAOKONG_BUFFER[0]=0xff;// add
remote_status=remote_phase_start;
tb0s=0;
udf0=0;
trgsr0=0;
onsf0=0x0;
cpsrf=0x80;
tb0ic=0;
tb0s=0;
int3ic=7;
}
}
}
//remote cuofeng receive------------------------------------------->end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -