Hi,
ICE: inCircuitEmulator, ein Tool mit dem Du Dir Register und Variablen durch Stoppen des Programmlaufs ansehen kannst, sehr gute
Fehlersuche möglich (z.B. Atmel ICE-Basic, JTAG-ICE MK2).
ASF: Atmel Software Framework, quasi eine Sammlung von Treibern und APIs zu Programmierunterstützung, Atmel Studio, Project, ASF Wizard öffnen,
sollte man aber zu Beginn eines Projektes, nicht mittendrin verwenden.
Wenn Du Deinen µC mit JTAG programmierst, was nutzt Du für ein Tool, evtl. kannst Du damit debuggen (Mal probieren: Einfach im Atmel-Studio
den grünen Pfeil drücken, mittels "Pause" (II) kann dann das Programm angehalten werden, Add Watch erlaubt das Verifizieren von Variablen,
In IO-View kann man sich die Register des µC ansehen).
(Deinen geposteten Code muss ich mir erst mal ansehen, dauert etwas.
Vielleicht hilft Dir, wie es beim UC3LO läuft:
INI:

// ADC
AVR32_ADCIFB.cr=AVR32_ADCIFB_CR_EN_MASK;
AVR32_ADCIFB.mr=0;
AVR32_ADCIFB.acr= (3<<AVR32_ADCIFB_SHTIM_OFFSET)
| (3<<AVR32_ADCIFB_START_OFFSET)
| (5<<AVR32_ADCIFB_PRESCAL_OFFSET)
| (AVR32_ADCIFB_RES_12BIT<<AVR32_ADCIFB_RES_OFFSET);
AVR32_ADCIFB.trgr=0; // Software-Trigger
AVR32_ADCIFB.cher=1;

AUSLESEN:

uint16_t read_adc()
{
AVR32_ADCIFB.cr |= AVR32_ADCIFB_CR_START_MASK;
while(!(AVR32_ADCIFB.sr & AVR32_ADCIFB_SR_READY_MASK)) {}
return (uint16_t)AVR32_ADCIFB.lcdr;
}

mfg
Achim