nemyslim, ze je to primo “chyba” spis se vyvojari snazi dokopat lidi aby se snazili pozivat mensi data u 8-bitu (misto long int).
podle definice: #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
tvoje zadani je = 8MHz a 29ms = 58000 (int)
ale kdyz das 30ms tak se nevejdes do int ale uz do Long … proto mas problem… 8MHz a 30ms = 1740000 (long)
zkus pouzit nejkou smycku
for(;x;x)
{
_delay_ms(x);
}