10 void sirc_setTimeout(
int ms)
12 tLimit = (CLKFREQ / 1000) * ms;
15 int sirc_button(
int pin)
17 int button = sirc_code(pin, 7);
20 if((button <= 9) && (button >=0)) button++;
21 if(button == 10) button = 0;
26 int sirc_device(
int pin)
28 int device = sirc_code(pin, 12);
34 int sirc_code(
int pin,
int bits)
36 set_io_dt(CLKFREQ/1000000);
37 set_io_timeout(CLKFREQ/50);
43 irPulse = pulse_in(pin, 0);
46 if((CNT - t) >= tLimit)
return -1;
48 }
while((irPulse <= 2000) || (irPulse >= 2800));
50 for(
int i = 0; i < bits; i++)
52 irPulse = pulse_in(pin, 0);
53 if((irPulse > 1000) && (irPulse < 1400)) irCode |= (1 << i);
54 if((irPulse < 300) || (irPulse > 1400))
return -1;
57 if((CNT - t) >= tLimit)
return -1;