Ich kann nicht sagen ob es das gelbe vom Ei ist, aber es ist zumindest eine Möglichkeit.
Code:
#include "avr/io.h"
#include <util/delay.h>
#ifndef F_CPU
#warning "F_CPU war noch nicht definiert, wird nun mit 3686400 definiert"
#define F_CPU 4000000UL     /* Quarz mit 3.6864 Mhz  */
#endif
unsigned char Tastenflag =1;

int main(void)
{
 

   PORTD |= (1<<PD6);
   DDRD &=  ~(1<<PD6);
   
   PORTB = 0xff;
   DDRB  = 0xff;
   
   uint8_t i = 0;


  while (1)
    {
      
	  if((!(Tastenflag))&&( PIND  & (1<<PIND6))){	// Wenn Taste nicht gedrückt und Tastenflag=0 
	  	Tastenflag =1;							// Tastenflag wieder setzen
	    }
      if ((Tastenflag)&&(!( PIND  & (1<<PIND6) )))  //Wenn Taste betätigt und Tasteflag gesetzt
       {
  //        _delay_ms(50);
        i= i + 1;
       Tastenflag = 0;		// Tastenflag auf 0 setzten
         switch (i)
         {
        
         case 1 : PORTB = 0x4F;   
                  break;
         case 2 : PORTB = 0x12;
                  break;
         case 3 : PORTB = 0x06;
                  break;
         case 4 : PORTB = 0x4C;
                  break;
         case 5 : PORTB = 0x24;
                  break;
         case 6 : PORTB = 0x20;
                  break;
         case 7 : PORTB = 0x0F;
                  break;
         case 8 : PORTB = 0x00;
                  break;
         case 9 : PORTB = 0x04;
                  i=0;   
                  break;
                  
      
         }
          }