📄 remodecode.c
字号:
#include <RemoKey.h>
#include<define.h>
#include <iom16.h>
unsigned char RemoFlag;
unsigned char RemoCount;
unsigned char RemoCmd;
unsigned char RemoSuccess;
unsigned char RemoData[3];
extern void NmDelay(unsigned int);
extern void Uart_Send_Byte(unsigned char c);
extern void WDT_On(void);
extern void WDT_Off(void);
#pragma vector=INT0_vect
__interrupt void RemoDecode(void)
{
unsigned char temp;
temp=TCNT0;
//Uart_Send_Byte(temp);
TCNT0=0;
TCCR0=CLK_1024;
if(RemoFlag==0)
{
RemoFlag=1;
RemoData[0]=0;
RemoData[1]=0;
RemoData[2]=0;
return;
}
if(RemoFlag==1)
{
if(temp<Time4_5_Big&&temp>Time4_5_Small)
{
RemoFlag=2;
return;
}
}
if(RemoFlag>=2&&RemoFlag<=4)
{
RemoCount++;
RemoData[RemoFlag-2]>>=1;
if(temp<Time1_7_Big&&temp>Time1_7_Small)
RemoData[RemoFlag-2]|=0x80;
else if(temp<Time0_6_Big&&temp>Time0_6_Small)
RemoData[RemoFlag-2]&=0x7f;
if(RemoCount>=8)
{
RemoFlag++;
RemoCount=0;
}
}
if(RemoFlag==5)
{
//Uart_Send_Byte(RemoData[0]);
//Uart_Send_Byte(RemoData[1]);
if(RemoData[0]==RemoCustom0&&RemoData[1]==RemoCustom1)
{
INT0_Disable;
RemoSuccess=1;
RemoCmd=RemoData[2];
Uart_Send_Byte(RemoCmd);
NmDelay(10);
RemoData[0]=0;
RemoData[1]=0;
RemoData[2]=0;
RemoFlag=0;
RemoCount=0;
}
else RemoFlag=0;
}
}
#pragma vector=TIMER0_OVF_vect
__interrupt void Timer0_Over(void)
{
TCCR0=CLK_STOP;
INT0_Enable;
TCNT0=0;
RemoData[0]=0;
RemoData[1]=0;
RemoData[2]=0;
//Uart_Send_Byte(0x88);
}
void Remo_ProT1(void)
{
switch(RemoCmd)
{
case UP: ICR1+=10; if(ICR1>=350) ICR1=350; break;
case DOWN: ICR1-=10; if(ICR1<=100) ICR1=100; break;
case RIGHT: OCR1A+=10; if(OCR1A>=90) OCR1A=90; break;
case LEFT: OCR1A-=10; if(OCR1A<=10) OCR1A=10; break;
default:break;
}
}
void Remo_ProT0(void)
{
switch(RemoCmd)
{
case UP: OCR0+=10; if(OCR0>=240) OCR0=240; break;
case DOWN: OCR0-=10; if(OCR0<=10) OCR0=10; break;
default:break;
}
}
void Remo_ProWDT(void)
{
switch(RemoCmd)
{
case UP: OCR0+=10;Uart_Send_Byte(0x44); if(OCR0>=240) OCR0=240;Uart_Send_Byte(0x66); break;
//case DOWN: while(1); break;
case LEFT: WDT_On() ;Uart_Send_Byte(0x56);break;
case RIGHT: WDT_Off();Uart_Send_Byte(0x46);break;
default:break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -