Ghulas: jak pracuje PORTD &= ~(1<<PD2) a podobné je na
http://forum.mcontrollers.com/t/problem-s-prerusenim-blikani-led-casovacem-obcas-nejde/1011/44
Zápis je tam sice trochu jiný, ale princip zůstává.
S getchar a putchar ti neporadim, protože je na mcu nepoužívám. Není do nich vidět a o optimálnímu využití strojového času nemůže být řeč.