#define F_CPU 16000000 #include #include volatile uint16_t matrix[5]; volatile uint8_t flag_slow; void Init(); void InitPorts(); void InitTimer(); int main(void) { uint16_t tmp=1; Init(); while (1) { if (flag_slow) { flag_slow = 0; tmp <= 1; if (tmp > (1<<13)) tmp = 1; // Update der Matrix matrix[4] = matrix[3]; matrix[3] = matrix[2]; matrix[2] = matrix[1]; matrix[1] = matrix[0]; matrix[0] = tmp; } } } void Init() { InitPorts(); InitTimer(); } void InitPorts() { DDRA= 0xFF; DDRB= 0x1F; DDRC= 0xFF; DDRD= 0x00; } void InitTimer() { //Timer1 TCCR1B |= (1<>8; PORTC |= matrix[c]; PORTB = ~spalte; // neue Spalte ein, low active //Debug LED PORTA ^= (1<