#include <avr/io.h>     // Definitionen laden 
#include <util/delay.h> // CPU Frequenz einstellen! 

#define KEYREADER ~PIND & 0b01111111 // Einlesen, invertieren, maskieren zurecht schieben 
#include "keycheck.inc"              // http://mezdata.de/avr/083_c-entprellen/keycheck.inc 

unsigned char muster[2][6]={{4,0b100,0b010,0b001,0b010},{5,0b000,0b110,0b011,0b010,0b111}};
unsigned char musterzaehler=1,musternummer=0;
int main(){         // Hauptprogramm 
  PORTB=0xff;       // alle LED aus 
  DDRB=0xff;        // PB als Ausgang 
  while(1){         // Endlosschleife 
    keyCheck();
    if(keyEnter&1){ // Taste gedrueckt?
      musterzaehler=0;
      musternummer++;
      if(musternummer>=sizeof(muster)/sizeof(muster[0])) musternummer=0;
    }
    PORTB=(PORTB|0b111) & ~muster[musternummer][musterzaehler]; // Muster aus Array
    _delay_ms(400);
    musterzaehler++;
    if(musterzaehler>muster[musternummer][0]){ // 
      musterzaehler=1;
    }
  } 
  return 0; 
}