www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC - Interrupt Vektoren und Speicher - Low / High Priority


Autor: Sven Wehrle (schwaenn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich habe eine Frage zur Startadresse der Interrupt Routinen. Laut 
Datenblatt des PIC18F4550 zeigt der High-Priority Interupt Vector auf 
0x08, der Low-Priority Interupt Vector auf 0x18. Laut Linkerfile reicht 
der Interupt Speicher von 0x00 bis 0x29. Alles in allem sind da nur ein 
paar Byte Speicher.

In meinem Programm habe ich nur einen Interrupt, der allerdings recht 
groß ist. Ich habe deswegen im Linkerfile den Speicher für Interupts 
vergößert. Dabei kamen mir folgende Fragen auf:

Wird der Speicher für den Low-Priority Interupt dabei nicht vom Code des 
High-Level Interupts überschrieben? Was passiert, wenn nun ein Low-Level 
Interupt ausgelöst wird? Der müsste dann doch mitten im High-Level 
Interupt beginnen?
Wenn ich den Speicher für Interupts vergößere, verschiebe ich dann auch 
gleich den Low-Priority Interupt Vector oder muss ich das noch irgendwo 
selbst machen?
Eigentlich müsste man dann doch immer nur Funktionsaufrufe in den 
Interupt reinschreiben, die dann irgendwo anders hinspringen. So wenig 
Platz reicht ja niemals. In Assembler Programmierung ist das ja üblich, 
in C hab ich das noch nicht gesehen.

Vielen Dank für die Hilfe.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An der Adresse 0x08 resp. 0x18 schreibst Du einen goto mit Deiner 
Interrupt-Routine als Sprungziel.
Schau Dir mal die Beispiele an, die mit dem Compiler (mit welchem 
arbeitest Du denn?) geliefert werden.

Autor: Sven Wehrle (schwaenn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hab ichs gemacht. Im "MPLAB C18 C Compiler User's Guide" hab ich ein 
nettes Beispiel gefunden. Danke für den Tipp.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte, und danke für die Rückmeldung.

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.