Warum den adwert als int32, ein unsigned int tut es auch.
Den ADC initialisiert man nur einmal und nicht bei jedem Lesevorgang neu.
Was gibt der UART aus?
PORTD &= (1<<6); Ich nehme mal an das dieses Bit auf 0 gesetzt werden soll.
PORTD &= ~(1<<6); Es sollte dann so sein.