/******************************************************* Projekt: Aetzwanne Version : ATTiny2313A - 1 Erstellt: 22.09.2016 Letze Aenderung: 25.09.2016 Chip: Attiny2313A mit internen 8.0 MHz *******************************************************/ /// Header-Dateien /// #include #include /// Definierungen /// #define InterruptIn PIND.2 #define DataIn PIND.3 #define SegmentA PORTB.7 #define SegmentB PORTB.6 #define SegmentC PORTB.5 #define SegmentD PORTB.4 #define SegmentE PORTB.3 #define SegmentF PORTB.2 #define SegmentG PORTB.1 #define Digit1 PORTB.0 #define Digit2 PORTD.6 /// Prototypen /// void write_bitmuster (char temp_part); /// Globale Variablen /// char interruptzaehler = 0; char temp_einer_bit0; char temp_einer_bit1; char temp_einer_bit2; char temp_einer_bit3; char temp_zehner_bit0; char temp_zehner_bit1; char temp_zehner_bit2; char temp_zehner_bit3; // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { switch (interruptzaehler) { case 0: temp_einer_bit0 = DataIn; break; case 1: temp_einer_bit1 = DataIn; break; case 2: temp_einer_bit2 = DataIn; break; case 3: temp_einer_bit3 = DataIn; break; case 4: temp_zehner_bit0 = DataIn; break; case 5: temp_zehner_bit1 = DataIn; break; case 6: temp_zehner_bit2 = DataIn; break; case 7: temp_zehner_bit3 = DataIn; break; } interruptzaehler++; if (interruptzaehler == 8) interruptzaehler = 0; } void main(void) { //Lokale Varibalen char temp_part = 0; // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=(1<