Привет.Так мы обратно с кнопок пришли к TSOP ,вот кусок кода как понять какой здесь протокол //********************************************************************************** // External Interrupt 0 service routine receive command from IR remote control unit //********************************************************************************** interrupt [EXT_INT0] void ext_int0_isr(void) {unsigned char ppp, pin; unsigned int _tmp, tout; GIMSK = 0; _tmp = 1;
for(ppp = 1; ppp<14; ppp++) {delay_us(1200); pin = PIND.2; for (tout = 1400; tout > 0; tout--) if (pin != PIND.2) break; if (tout == 0) {GIMSK = 0x40; //timeout EIFR = 0xC0; return;}; _tmp = _tmp << 1; if (!PIND.2) _tmp++; }; _cmd = _tmp & 0x003F;
if ((_cmd & 0x0F) == 1) hour++; //1 slow if ((_cmd & 0x0F) == 2) min++; //2 fast if ((_cmd & 0x0F) == 3) sec=0; //3 if ((_cmd & 0x0F) == 4) //fast {//4 day++; day_of_week++; }; if ((_cmd & 0x0F) == 5) day = day + 31; //5 slow if ((_cmd & 0x0F) == 6) year++; //6 fast if ((_cmd & 0x0F) == 7) day--; //7 if ((_cmd & 0x0F) == 8) {//8 if (day>31) day=day-31; }; if ((_cmd & 0x0F) == 9) {//9 if (year>2000) year--; }; _cmd = 0; EIFR = 0xC0; GIMSK = 0xC0; }
|