-         
Ergebnis 1 bis 2 von 2

Thema: XMega mit periodischem Timer Interrupt

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995

    Frage XMega mit periodischem Timer Interrupt

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995
    hat niemand eine ahnung?

Ähnliche Themen

  1. Interrupt + Timer
    Von runner02 im Forum C - Programmierung (GCC u.a.)
    Antworten: 13
    Letzter Beitrag: 06.03.2011, 12:17
  2. Xmega - Timer configuration
    Von Duesentrieb7 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 09.12.2009, 21:56
  3. Timer und Interrupt
    Von drakon im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 20.10.2007, 16:25
  4. Timer Interrupt
    Von ttiny im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 27.06.2006, 07:21
  5. Interrupt TIMER
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 06.06.2006, 16:42

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •