// 4 x 7 digit LED display control - no interrupt const int8_t numbers [10] = {20, 215, 76, 69, 135, 37, 36, 87, 4, 5}; volatile uint8_t Digit_X00000, Digit_0X0000, Digit_00X000, Digit_000X00, Digit_0000X0, Digit_00000X; neu // store single digits volatile uint8_t active_digit = 0; // active digit void initialize_LED_display() { DDRD = 0b11111111; DDRC = 0b00111111; geändert } // Write number at indicated position to display void digit (uint8_t value, uint8_t pin) { PORTD = numbers[value]; // number output PORTC &= ~(1 << pin); // Low = current digit on } // distribute number to digits void number_output (int h, int m, int s) { Digit_X00000= h/10; Digit_0X0000= h%10; Digit_00X000 = m/10; Digit_000X00 = m%10; Digit_0000X0 = s/10; Digit_00000X = s%10; } void refresh() { PORTC = 0b00111111; // Digits off geändert if(active_digit == 0) digit (Digit_X00000, PC0); if(active_digit == 1) digit (Digit_0X0000, PC1); if(active_digit == 2) digit (Digit_00X000, PC2); if(active_digit == 3) digit (Digit_000X00, PC3); if(active_digit == 4) digit (Digit_0000X0, PC4); if(active_digit == 5) digit (Digit_00000X, PC5); active_digit ++; if (active_digit == 6 ) active_digit = 0; }