www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2103 ARM7 IRQ und FIQ Probleme


Autor: henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

ich klemme gerade hinter µVision und bin etwas genervt.
Ich habe einen FIQ auf den Timer 2 gelegt. Alle x ms wird eine Messung 
durchgeführt und etwas rumgerechnet. Klappt auch wunderbar.
Jetzt wollte ich mit Oversampling arbeiten und nur nach jeder vierten 
Messung die Berechnungen durchführen. Da die Berechnung zu lange dauert, 
um sie im FIQ der Messung durchzuführen habe ich die Berechnung in einen 
Software-Interrupt auslagern wollen. Nach jeder vierten Messung wird am 
Ende des FIQ ein Software-IRQ ausgelöst, der nach dem Beenden der 
FIQ-Routine auch abläuft. Wenn die Samplingrate so gering ist, dass der 
nächste FIQ erst nach der Beendigung der Software-IRQ-Routine ausgelöst 
wird, klappt alles wunderbar. Wird die Samplingrate höher unterbricht 
der FIQ wie geplant den Software-IRQ und geht danach wieder dahin 
zurück, aber am Ende des Software-IRQs wird in den Programmcouter 
0x4000'0004 geladen und das wars.

Initialierung
VICIntSelect = 0x04000000;
VICIntEnable |= 0x04000000; 
VICVectAddr0 = (unsigned int) &filter;
VICVectCntl0 = 0x20 | 31; 
VICIntEnable |= 0x80000000;

Ende Software-IRQ
VICSoftIntClr = 0x80000000;  
VICVectAddr = 0;

Ich hoffe auf schnelle Hilfe :-)
Vielen Dank
Henning

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu Fehlerbeschreibungen mit Codefragmenten dieser Art gibt es eine 
Daumenregel: Läge der Fehler exakt dort wo du ihn vermutest, dann 
hättest du ihn wohl selber schon gefunden. Also solltest du auch jene 
Teile offenlegen, wo du ihn selber nicht unmittelbar vermutest.

Mein erster Gedanke: FIQ Stack zu klein/vergessen und der überlappt 
daher mit den IRQ-Stack.

Autor: henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso geht doch auch so, NAchdem ich auch im startup.s die Wörtchen 
FIQ_Stack ... 0 gelesen habe hat es auch nach ändern des Wertes 
geklappt.

Dankeschön

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.