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