Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Interrupt deaktivieren? Kategorie: Programmierung ASM (von Dietmar, Homepage - 25.02.2004 17:26)
 Als Antwort auf Interrupt deaktivieren? von Thomas H. - 25.02.2004 11:45

> habe gerade in den FAQs gelesen, dass der Interrupt der C-Control durch das Setzten bzw. Löschen des I-Bits aktiviert und deaktiviert werden kann.
> Ich habe es leider nicht hinbekommen, egal ob ich das Bit setzte oder lösche - der Interrupt löst aus.


Vielleicht hast Du nicht bedacht, daß der Tokeninterpreter des C-Control-Betriebssystems an diversen Stellen CLI-Befehle enthält. Vor Ausführen eines BEEP-Befehls oder nach dem Schreiben auf einen Ausgabeport wird beispielsweise ein CLI ausgeführt und macht so Dein SEI hinfällig.

Ich weiß nicht, was Du machen möchtest, aber der TOG-Befehl, mit dem ein auf Ausgabe geschalteter Bitport getoggelt werden kann, enthält z.B. kein CLI. Ansonsten mußt Du mit Hilfe der Interrupt-Enable-Bits in den diversen Control-Registern jede Interruptquelle einzeln deaktivieren und bei Bedarf wieder reaktivieren. Das dürfte Dein Problem lösen.


; Alle maskierbaren Interruptquellen deaktivieren

 sei              ;Disable Interrupts
 bclr #4,$0c      ;External interrupt (IRQ) deaktivieren
 lda #%00000000   ;ICAP, OCMP und TOVL deaktivieren
 sta $12          ;Timer control register (TCR) setzen
 lda #%00001100   ;alle moeglichen Interrupts von SCI deaktivieren
 sta $0f          ;SCI control register (SCCR2) setzen
 cli              ;Enable Interrupts
 rts



Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Interrupt deaktivieren? (von Thomas H. - 26.02.2004 9:42)