
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Christian, legst Du eine Nachtschicht ein? Zu Deinen Fragen: > Mir fällt dazu eine Art leere FOR-Schleife ein. Also Rechenzeit verbraten! Das ist die simpelste Lösung. Sie hat aber den Nachteil, daß sie abhängig von der Taktrate des Controllers ist. > Oder einfach den Assemblerbefehl WAIT ausführen? Damit wird auf den nächsten Interrupt gewartet. Das ist nicht unbedingt ein TIMER-Interrupt. Aber intern im Betriebssystem der OM-Controller wird das beim PAUSE-Befehl so gemacht. Siehe OS. > Oder kann man ins OS der OM´s zum "PAUSE"-Befehl springen? Die Adressen im OS sind ja dokumentiert. Das ist auch wieder abhängig vom Controller. Bei jedem OM-Controller ergibt sich eine andere Adresse. Aber es gibt auf den OM-Controllern die Möglichkeit, jeden BASIC-Befehl per Firmwareroutine "FwIntrprt" aufzurufen. Dieses Verfahren sollte auf allen OM-Controllern funktionieren ohne den Sourcecode anpassen zu müssen. Um unabhängig vom Speicherlayout zu sein, werden Firmwareroutinen bei den OM-Controllern über Funktionsnummern aufgerufen. Siehe Beispiel unten! Freundliche Grüße Dietmar ' =========================================================================== ' Demoprogramm: PAUSE im Assembler ' In OCBASIC 1.12a für alle OM-Controller von Dietmar Harlos am 26. Mai 2026 ' =========================================================================== ' In diesem Demoprogramm wird mit Hilfe der Firmwareroutine "FwIntrprt" ein ' PAUSE-Befehl ausgeführt. Die Token der diversen BASIC-Befehle findet man im ' Kapitel "Unterstützter Befehlsumfang" in der Dokumentation: ' http://om.dharlos.de/doku_omax/html/COMPILED.HTM#unterst_tzter_befehlsumfang ' --- Definitionen ---------------------------------------------------------- 'INCLUDE "om.def" 'Definitionen für die Open-Micro und Open-Mini 'INCLUDE "omid.def" 'Definitionen für die Open-Midi 'INCLUDE "omac.def" 'Definitionen für die Open-Macro INCLUDE "omax.def" 'Definitionen für die Open-Maxi ' --- Hauptprogramm --------------------------------------------------------- PrintSpc=ON 'SPACE vor einem dezimalen PRINT End2Host=ON 'Bei Programmende gleich in den Host-Modus wechseln PRINT "PAUSE in Assembler" PRINT TIMER PauseInAsm PRINT TIMER PRINT "Programmende." END ' --- Subroutinen und Funktionen -------------------------------------------- ' Die Token der diversen BASIC-Befehle findet man im Kapitel "Unterstützter ' Befehlsumfang" in der Doku der Open-Macro und Open-Maxi. PROCEDURE PauseInAsm INLASM ! lda #50 'PUSH 50 ! jsr FwPush ! lda #2 'PAUSE ! jsr FwIntrprt ! rts END PROCEDURE ' --------------------------------------------------------------------------- ' Die Firmware-Routinen einbinden ' --------------------------------------------------------------------------- INCLUDE "om_fw.pro" ' --- Programmende --------------------------------------------------------- Passender Link: Infosite zu den OM-Mikrocontrollern Meine Homepage: http://ccintern.dharlos.de/ |
| Antwort schreiben |