www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM7: Funktionsweise des Interrupt Moduls


Autor: Christian J. (elektroniker1968)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat jemand vielleicht einen Link auf eine "gut verständliche" Erklärung 
in deutsch (ausnahmsweise..) wie die Interrupts des ARM7 zu benutzen 
sind? Egal wieviel Beispielcode ich auch lese und durchs Manual schaue, 
entweder bin ich zu blöde zu verstehen wie das funktioniert oder es ist 
einfach nur schlecht erklärt. Viele Beispielcodes sind vor lauter 
Benutzung von Zeigern und Zeigern auf Zeiger kaum mehr zu verstehen. De 
facto nutze ich derzeit Code aus Beispielen ohne ihn wirklich zu 
verstehen.

Den hier zB habe ich teilweise selbst geschrieben im unteren Teil um 
eine Zeitbasis zu haben, teilweise aus einem Beispiel von Rowley 
kopiert. Wa hat es mit diesen Slots auf sich und
// Ruft einen IRQ alle Millisekunden auf
void InitTimer0(unsigned int millisec)
{
    #define TIMER0_IRQ    4
    #define TIMER1_IRQ    5

     // Timer 0 ist ein IRQ interrupt
    VICIntSelect&= ~(1<<TIMER0_IRQ);
    // Benutze slot 0 für timer 0 interrupt, Bit 5 = 1 => Slot aktivieren
    VICVectCntl0=(1<<5) | TIMER0_IRQ;
    // Enable timer 0 interrupt
    VICIntEnable = (1<<TIMER0_IRQ);
    // Setze die Adresse der ISR für slot 0
    VICVectAddr0 = (unsigned int)timer0ISR;

    // Setze Timermatch 0 auf 1 Millisekunde
    T0MR0 = PLL_GetAPBClock()/1000;
    // Setze den Timer 0 prescale counter auf den Wert der Parameterliste
    T0PR = millisec;
    // Reset timer 0
    T0TCR = 0;
    // Match = IRQ auslösen und Timer resetten
    T0MCR |= T0MCR_Interrupt_on_MR0_MASK | T0MCR_Reset_on_MR0_MASK;
    // Start timer 0
    T0TCR = T0TCR_Counter_Enable_MASK;

     // Enable Interrupts
    __ARMLIB_enableIRQ();


Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du das schon gelesen?

http://www.mikrocontroller.net/articles/ARM-elf-GC...

Vielleicht reicht das schon.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.