Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt bei C-control
Wie kann ich eine "Interrupt-Routine", glaube das heißt so, erzeugen.
Ich bräuchte sowas:
Wenn port[12] = 0 then gosub inter
#inter
.
.
.
Das ganze soll halt keine Dauerschleife sein, sondern ein INTERRUPT, damit mein Roboter nicht dauernd nur mit dem überprüfen der Ports beschäftigt ist.
MFG Moritz
Leute, dass muss doch einer wissen, von mir aus auch mit Assemblern.
Die C-Control M-Unit verfügt über einen sog. Interrupt-Eingang (IRQ). Dieser spezielle Eingang ist mit 10k-pullup "high" gezogen. Wird beim Programmablauf ein "low" erkannt, verzweigt das Programm vor dem nächsten Befehl an die über "INTERRUPT <sprungziel>" in <sprungziel> definierte Stelle (analog GOSUB). Ein prima Beispiel findest du (wie diese Information auch) im Benutzerhandbuch zum C-Control M-Unit Programmieradapter auf den Seiten 37und 38 (download auf www.c-control.de)
Aber wie kann ich sagen, dass der Interrupt nur an port[12] überwacht werden soll?
Der Interrupt wird nur am IRQ-Eingang entgegengenommen, egal was an irgendeinem anderen Port gerade passiert. Dadurch wird das normale Programm unterbrochen(daher auch der Name) und die Interruptroutine ausgeführt, bis zum return. Die Abfrage des Port[12] odes eines anderen Ports kann dann im angesprungenen Unterprogramm (Interruproutine) erfolgen.
Gruß
Torsten
Ja, na gut, das hab ich befürchtet.
Ich hoffe aber, dass der Interrupt nciht anspringt, wenn ich Ports setze, oder?
Danke für die Antwort.
MFg Moritz
Bei der C-Control gibt es aber irgendwo im Basic-Betriebsystem ein Fehler, so das bei vielen IRQ´s Stackfehler auftritt. Das muß man glaub irgendwie austricksen. Vielleicht kann das jemand erläutern.
Interrupts werden nur ausgelöst wenn irg auf Masse gelegt wird, die C-Control hat nur einen Interrupt
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.