mas neco blbe,sesmolil sem toto a v pohode to funguje , preruseni od timeru a primu …[code]#INT_RDA
void RDA_isr()
{
unsigned int8 data;
data=getc();
if(data=='*')buf_len=0;
buf[buf_len++]=data;
if(buf_len>3)f_buf=true;
}
//***********************************
#INT_TIMER1
void TIMER1_isr()
{
tmr1_count++;
}
//***********************************
void main()
{
unsigned int8 i;
CLEAR_INTERRUPT(INT_RDA);
CLEAR_INTERRUPT(INT_TIMER1);
ENABLE_INTERRUPTS(INT_RDA );
ENABLE_INTERRUPTS(INT_TIMER1 );
ENABLE_INTERRUPTS(GLOBAL);
SETUP_TIMER_1(T1_DISABLED | T1_DIV_BY_8);
//SETUP_TIMER_1(T1_INTERNAL| T1_DIV_BY_8);
while (TRUE)
{
if(f_buf){f_buf=false;
if((buf[1]=='1')&& (buf[2]=='2')&& (buf[3]=='4')){OUTPUT_HIGH(PIN_A0);
tmr1_count=0;
SET_TIMER1(0);
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
}
}
if(tmr1_count>3){
SETUP_TIMER_1(T1_DISABLED );OUTPUT_LOW(PIN_A0);tmr1_count=0;OUTPUT_toggle(PIN_A1);}
}
}[/code]vysilam * + 3byte informace , pokud do dvou sekund pride spravna informace tak sviti porad jinak se ledka vypina sama po 2s (delam to rucne pres terminal)