// Include C Libriaries #include #include #include // Ziffern --> Segmente aktivieren #define zifferNull PORTA = (1< 0) { ziffer3 = zahl % 10; } else { ziffer3 = 10; } zahl = zahl / 10; // Hunderter if (zahl > 0) { ziffer2 = zahl % 10; } else { ziffer2 = 10; } zahl = zahl / 10; // Tausender if (zahl > 0) { ziffer1 = zahl % 10; } else { ziffer1 = 10; } zahl = zahl / 10; for (count = 1; count <= dauer; count++) { // alle Ziffern und Segmente ausschalten PORTA = 0; PORTB = 0; PORTD = 0; // Tausender PORTB = 0; aktiviereSegmente(ziffer1); PORTB = (1<<7); // 3 + 4 _delay_us(200); // Hunderter PORTB = 0; aktiviereSegmente(ziffer2); PORTB = (1<<6); // 3 + 3 _delay_us(200); // Zehner PORTB = 0; aktiviereSegmente(ziffer3); PORTB = (1<<5); // 3 + 2 _delay_us(200); // Einser PORTB = 0; aktiviereSegmente(ziffer4); PORTB = (1<<4); // 3 + 1 _delay_us(200); } // alle Ziffern und Segmente ausschalten PORTA = 0; PORTB = 0; PORTD = 0; } void aktiviereSegmente(uint8_t ziffer) { switch (ziffer) { case 0: zifferNull; break; case 1: zifferEins; break; case 2: zifferZwei; break; case 3: zifferDrei; break; case 4: zifferVier; break; case 5: zifferFuenf; break; case 6: zifferSechs; break; case 7: zifferSieben; break; case 8: zifferAcht; break; case 9: zifferNeun; break; case 10: zifferAus; break; } }