/* * Dekodierung_des_Empfangssignales.c * * Created: 05.04.2013 09:31:40 * Author: 09EPAM42 */ #include #include int16_t Code = 0x0000; int Einlesen; int Auslesen; ISR(PCINT_vect) { GIMSK = 0x00; //PCINT sperren if ((PINB & 0x10) == 0x00) { Code = Code | 0x8000; } Code = Code >> 1; GPIOR0 = Code; if ((Code & 0B0000000000001100) == 0B0000000000001100) //0B11010100000001 --> 100000 00101 T 11 { PORTA = 0x04; Code = 0x00; } TCNT0H = 0xFA; TCNT0L = 0x88; TCCR0B = 0x02; // Timer starten } ISR(TIMER0_OVF_vect) { PORTA = 0xFF; TCCR0B = 0x00; // Timer stoppen GIMSK = 0x01; // INT freigeben GIFR = 0x00; // Flag löschen } int main(void) { for (int i=0; i<30000;i++); DDRA = 0xFF; DDRB = 0x00; PORTB = 0xFF; //PORTB = 0x10; // Konfiguration für den Sensor TCCR0A = 0x80; // 16 Bit Modus PORTA = 0x00; // Konfiguration für die LED TCNT0H = 0xFC; TCNT0L = 0x18; GIMSK = 0B00100000; // GIMSK setzen PCMSK1 = 0B00010000;// Interrupt Maskierung SREG = 0x80; // Global Enable Bit setzen //TIMSK = 0x00; // while (1) {} }