www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupts beim LPC2138


Autor: Fried Vissel (tich)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bekomme einfach keinen TIMER0 Interrupt zustande. Nach der Lektüre 
diverser Beispiele, des UM und des Datenblattes habe ich den Code im 
Anhang geschrieben.
Was habe ich da übersehen? Der Int kommt nicht durch, die Startup Files 
sind die Originale von Rowley.
Besten Dank
Fried

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

Bewertung
0 lesenswert
nicht lesenswert
Werden die Interrupt-Flags des Prozessors im Startup-Code von Rowley 
bereits freigegeben?

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

Bewertung
0 lesenswert
nicht lesenswert
Wozu ist das gut, vor allem in dieser Reihenfolge?
  return( TRUE );
  VICVectAddr = (unsigned long) HandlerAddr;

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

Bewertung
0 lesenswert
nicht lesenswert
Funkioniert das?
void wait(unsigned long zeit) {
  while (zeit > 0) zeit--;
}
GCC neigt ja dazu, solchen Code komplett wegzuoptimieren.

Autor: Fried Vissel (tich)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas Sorry, Rest aus altem Code

Autor: Fried Vissel (tich)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas Ja, das tut, ist GCC v4.1.1
Aber die Optimierung des GCC kann manchmal schon zu bösen Überraschungen 
führen.

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

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dem Timer nicht über den Weg traust: Bit in VICSoftInt setzen 
(und im Handler wieder löschen). Wenn dann immer noch nichts durchkommt, 
sind die Interrupts nicht freigegeben. Ich kenne Rowleys Startup Code 
nicht.

Autor: Fried Vissel (tich)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaiser wrote:
> Werden die Interrupt-Flags des Prozessors im Startup-Code von Rowley
> bereits freigegeben?

Welche Flags meinst Du? Ich habe in den Startups so nichts gesehen?

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

Bewertung
0 lesenswert
nicht lesenswert
Fried Vissel wrote:

> Welche Flags meinst Du? Ich habe in den Startups so nichts gesehen?

Das "I" Flag im Statusregister.

Autor: Fried Vissel (tich)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaiser wrote:
> Fried Vissel wrote:
>
>> Welche Flags meinst Du? Ich habe in den Startups so nichts gesehen?
>
> Das "I" Flag im Statusregister.

Vielen Dank, das war's!
Bei den vielen VIC Regs übersieht man halt einfach den Wald vor lauter 
Bäumen! Auch nach mehrmaligem intensiven Lesen der VIC Doku habe ich 
noch ordentlich Knoten im Hirn und die Vorteile dieses zumindest 
"unübersichtlichen" Konstrukts VIC sehe ich auch noch nicht ganz.

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

Bewertung
0 lesenswert
nicht lesenswert
Fried Vissel wrote:

> noch ordentlich Knoten im Hirn und die Vorteile dieses zumindest
> "unübersichtlichen" Konstrukts VIC sehe ich auch noch nicht ganz.

Musst du nicht verwenden. Wenn du ohne separate Vektoren gut leben 
kannst, dann hängt dir einen eigenen Handler in die Sprungleiste und 
sortiere die Quellen dort aus. PIC-Fans ist das sehr vertraut.

Vorteil des VIC ist halt die Vektorisierung und die Priorisierung von 
verschachtelten Interrupts. Letzteres ist allerdings noch ein bischen 
komplizierter, weil ARM diesen Aspekt bei Design der Architektur 
schlichtweg vergessen hatte.

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.