Achso,
Das habe ich überlesen
Also WinAVR ist eine Portierung von gcc-avr nach Windows, deswegen dieses Win, es wird also ohne Probleme bei Dir klappen.

Noch was zu der Funktion
loop_until_bit_is_set(UCSRA, UDRE);

Sie befindet sich in sfr_defs.h und macht nichts, bis das Bit mit dem Namen
vom 2. Parameter (Hier UDRE) im BYTE vom 1.Parameter (hier Register UCSRA) nicht gesetzt ist.
Man könnte das in diesem Fall auch so schreiben:

while (!(UCSRA & (1<<UDRE)));

Ich weiß, die schreibweise ist ja nicht gerade einfach, deswegen vielleicht
C allgemein was üben.
! -> nicht
& - UND Verknüpfung
<< Bits nach links schieben
das ist alles C allgemein.

Ich hoffe, daß es alles so stimmt

Aber woher hast du Atmega32.pdf
Ich habe es mir mal runtergeladen....
Schaue mal hier im Forum im Downloadbereich nach, oder füttere google damit

Ich kann Dich gut verstehen, daß es nicht einfach ist vom Bascom zu C zu wechseln, aber ein Vorteil hast Du dadurch, Du arbeitest ziemlich Hardware nah, und lernst die µC richtig kennen.

Gruß Sebastian