Code:volatile uint8_t RegisterA = PINA; ISR (PCINT0_vect) // Interrupt, ABFRAGE, aus Bank0, wird ausgelöst { uint8_t resetVal = Reset_Status(); if(RegisterA & (1<<PINA2)) != 0) // auf Zustandveränderung PA2/RESET abfragen { switch (resetVal) // "Reset" entprellen // return 0=low, 1=high { case 0: RegisterA=PINA; Reset_off(); break; // Reset wird ausgeführt case 1: RegisterA=PINA; Reset_on(); break; // Reset wird nicht ausgeführt } } if(RegisterA & (1<<PINA3)) != 0) // auf Zustandveränderung PA3/RESET abfragen { switch (resetVal) // "Reset" entprellen // return 0=low, 1=high { case 0: RegisterA=PINA; Reset_off(); break; // Reset wird ausgeführt case 1: RegisterA=PINA; Reset_on(); break; // Reset wird nicht ausgeführt } } // solch eine Abfrage noch für PA4, PA5 hintereinander gehangen }
Lesezeichen