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.