Das mit dem Demo wurde hier schon einige mal behandelt.
Es hängt damit zusammen das dem _delay_ms keine Variable übergeben werden darf, nur Konstante sind zugelassen, siehe avr-libc-user-manual.
Umgehungsmöglichkeit mit while.