Hallo,

Ich möchte mit einem ATXmega32 und dem neuen AVRStudio einen periodischen Timer-Interrupt aufrufen. Hab auch schon alle AppNotes durchgekaut usw.

Initialisiert wird der timer so:
Code:
TCC0.PER = 65000;
TCC0.INTCTRLA = TC_OVFINTLVL_HI_gc;
TCC0.CTRLA = TC_CLKSEL_DIV1024_gc;

PMIC.CTRL |= PMIC_HILVLEN_bm |PMIC_MEDLVLEN_bm|PMIC_LOLVLEN_bm;
sei();
Der Timer-Interrupt "ISR (TCC0_OVF_vect){}" wird jedoch unabhängig welchen Divider oder welche Period ich eingestellt habe mit 106kHz aufgerufen.

Habs auch mit den Funktionen aus der App-Note AVR1306 (http://www.atmel.com/dyn/resources/p...ts/doc8045.pdf) probiert, ohne erfolg.

Übrigens, meine CPU Clock ist so initialisiert, sollte so ca das maximum sein welches möglich ist:
Code:
    /******************************************************************
    * System Clock 32MHz (XOSC Quarz 16MHz, PLL Faktor 2)
    * http://www.mikrocontroller.net/topic/156466
    ******************************************************************/

    /* Nach dem Reset ist die Quelle des Systemtaktes der interne
     2MHz RC-Oszillator (System Clock Selection: RC2MHz)
    */

    // Oszillator XOSC konfigurieren (12..16MHz, 256 clocks startup time)
    CLKSYS_XOSC_Config( OSC_FRQRANGE_12TO16_gc,
                      false,
                      OSC_XOSCSEL_XTAL_256CLK_gc );

    // Oszillator XOSC enable
    CLKSYS_Enable( OSC_XOSCEN_bm );

    // Warten bis der Oszillator bereit ist
    do {} while ( CLKSYS_IsReady( OSC_XOSCRDY_bm ) == 0 );

    // PLL source ist XOSC, Multiplikator x8
    CLKSYS_PLL_Config( OSC_PLLSRC_XOSC_gc, 16 );

    // Enable PLL
    CLKSYS_Enable( OSC_PLLEN_bm );

    // Prescalers konfigurieren
    CLKSYS_Prescalers_Config( CLK_PSADIV_4_gc, CLK_PSBCDIV_1_2_gc );

    // Warten bis PLL locked
    do {} while ( CLKSYS_IsReady( OSC_PLLRDY_bm ) == 0 );
    
    // Main Clock Source ist Ausgang von PLL
    CLKSYS_Main_ClockSource_Select( CLK_SCLKSEL_PLL_gc );
Grüße,

Thomas