Code:
#include <avr/io.h> 
#include <inttypes.h> 

#ifndef F_CPU 
#define F_CPU 3686400UL         /*Quarz mit 3.6864 Mhz */ 
#endif 

#include <util/delay.h>         /* definiert _delay_ms() */ 

/* Einfache Funktion zum Entprellen eines Tasters */ 
inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) 
{ 
   if ( ! (*port & (1 << pin)) ) 
   {    
      /* Pin wurde auf Masse gezogen, 100ms warten */ 
      _delay_ms(100); 
      if ( ! (*port & (1 << pin)) ) 
      { 
         /* Anwender hat Zeit zum Loslassen des Tasters gegebn */ 
         _delay_ms(100); 
         return 1; 
      } 
   } 
   return 0; 
} 

int main(void) 
{ 
   DDRB &= ~( 1 << PB0 );            /* PIN PB0 auf Eingang (Taster)      */ 
   PORTB |= ( 1 << PB0 );            /* Pullup-Widerstand Aktivieren      */ 

   if (debounce(&PINB, PB0))         /* Falls Taster an PIN PB0 Gedrückt   */ 
   { 
      PORTD = PIND ^ ( 1 << PD7 );   /* LED an PinD7 an bzw ausschalten   */ 
   } 

   PORTB = (1<<PB4); 

return 0;
}
Jops so macht das auch für meine (inzwischen) bescheidenen C Kenntnisse MEHR sinn.

Aber: Die Sim mag immer noch nich. Ich mein es müsste ja zumindest PB4 immer auf 1 sein oder