INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo zusammen, ich habe ein komisches Problem auf der Open-Midi: Eine Interrupt-Routine in INLASM kommt immer nur einmal, obwohl der Hardware-IRQ mehrfach ausgelöst wird. Erst nach einem Hardware-Reset kann er wieder einmal verarbeitet werden. Hatte jemand so was schon mal? Zusätzlich wird noch mit den ESCI Interrupt für die Serielle gearbeitet. Die läuft aber einwandfrei. Hier ein paar Auszüge der wichtigsten Programmteile: ' --------------------------------------------------------------------------- INCLUDE "omidesci.iia" 'Routinen fuer die ESCI einbinden ' --------------------------------------------------------------------------- #main 'Das Hauptprogramm CONFIG2=&b01000000 'IRQEN im CONFIG2-Register des Kontrollers setzen INTERRUPT basicirq 'BASIC-Interruptroutine vereinbaren UIREsciR=ON 'IIAR in den ESCI-Receive-Interrupt einbinden esciinit 'ESCI-Modul des Kontrollers initialisieren . . . ' --------------------------------------------------------------------------- proc basicirq INLASM 'Interruptroutine zum Kartendaten lesen !BCLR 2,1 'portb ' Rote LED an zum DEBUG mit Ossi !BSET 2,1 'portb ' Rote wieder aus !bset 2,allflags ' Card DA setzen !clc !RTS end proc Der Puls auf dem Port dient nur zum Debug und Timing-Messung. der Puls ist 100us nach der Flanke zu sehen, aber eben nur einmal... Danke für jeden Kommentar. Gruß Wolfgang |
Antwort schreiben |