Hi Teri,
das Programm wird bei dem return 0 beendet. Zu dieser Anweisung darf es quasi nie kommen, also baut man immer eine while-Schleife in die main ein.

Um
Code:
PORTD |= (1<<PD5);
   _delay_ms(16);


   PORTD &= (1<<PD5);
   _delay_ms(16);
Machst du einfach eine while-Schleife, die immer wahr ist.

Also
Code:
while(1)
{
    ... tue etwas
}
Viele Grüße
CsT