Hallo Forum,

ich programmiere gerade etwas mit einem XMega128A1 und habe folgendes Programm:

Code:
/*
 * XMega.c
 *
 * Created: 22.03.2012 19:42:07
 *  Author: Daniel
 */ 

#include <avr/io.h>

int main(void)
{
    // Taktquelle konfigurieren
    OSC.CTRL |= 0x02;                                                                        // 32MHz-Enable Bit setzen
    while(!(OSC.STATUS & OSC_RC32MRDY_bm));                                                    // Sobald der Takt stabil ist wird das RC32MRDY Bit gesetzt
    CCP = 0xD8;                                                                                // I/O Protektion aktivieren
    CLK.CTRL = 0x01;                                                                        // 32MHz als Taktquelle auswählen
    
    // PLL konfigurieren
    OSC_PLLCTRL = 0x82;                                                                        // PLL Multiplikator auf x2 setzen und PLL Input Clock auf 32MHz setzen                                                                    
    OSC.CTRL |= 0x10;                                                                        // PLL-Enable Bit setzen
    while(!(OSC.STATUS & OSC_PLLRDY_bm))                                                    // Warten bis PLL bereit ist
    
    // I/O konfiguration
    PORTB.DIR = 0xff;                                                                        // Port B auf Ausgang stellen
    
    while(1)
    {
        PORTB.OUT ^= (1<<PIN0);
    }
}
Der Sinn des Programmes besteht darin, den Takt auf 32Mhz zu setzen und dann diesen Takt für die interne PLL zu nutzen.
Im Hauptprogramm wird dann ein Pin getoggled, damit ich am Oszi eine Veränderung sehen kann.
Allerdings zeigt das Oszi immer 2,35MHz an, egal auf was ich den PLL Multiplikator setze.
Wo steckt mein Fehler?

Danke für die Hilfe!