- 3D-Druck Einstieg und Tipps         
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
    33
    Beiträge
    995

    Frage XMega mit periodischem Timer Interrupt

    Anzeige

    E-Bike
    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
    33
    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, 13:17
  2. Xmega - Timer configuration
    Von Duesentrieb7 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 09.12.2009, 22:56
  3. Timer und Interrupt
    Von drakon im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 20.10.2007, 17:25
  4. Timer Interrupt
    Von ttiny im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 27.06.2006, 08:21
  5. Interrupt TIMER
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 06.06.2006, 17:42

Stichworte

Berechtigungen

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

12V Akku bauen