Interrupt aus und einschalten

Gast #3073393
Lesenswert?

Ich möchte meine Taste entprellen. Darf ich das so machen? Ihrgendwie 
ruft er diesen Interrupt doch zwei mal auf.
1
.org 0x000
2
rjmp RESET
3
rjmp E_Start ; $001 External Interrupt Request 0
4
...
5
rjmp InRS232 ; $012 USART Rx Complete
6
...
7

8
RESET:
9
rjmp RESET
10

11

12
E_Start:
13
rcall Taste
14
reti
15

16
Taste:
17
cli
18
...
19
...
20
...
21
sei
22
ret

Ich habe auch ein Interrupt $012 USART Rx Complete dieser geht nach dem 
Tasten drücken nicht mehr.
Gast #3073419
Lesenswert?

Ja das hatte ich schon gelesen. Doch geht es mir nicht nur um das 
entprellen sondern das ich jegliche Interrups sperre solang ich in der 
Routine Taste bin.

Nur geht danach der Rx Complete Interrupt nicht mehr wobei der External 
Interrupt Request 0 Interrupt geht.

Rx Complete Interrupt ruft auch Taste auf.

Also Rufe ich über Rx Complete die Routine Taste auf so springt er 
auch in die Routine kommt auch wieder doch danach ist kein RX Complete 
mehr tätig.

Rufe ich die Routine über External Interrupt Request 0 fürhrt er die 
Routine Taste aus kommt auch wieder zurück, doch ist kein Rx Complete 
mehr tätig.

External Interrupt Request 0 geht immer.
Gast #3073479
Lesenswert?

Karl Heinz Buchegger schrieb
> Kurt B. schrieb:
>
>> Also Rufe ich über Rx Complete die Routine Taste auf so springt er
>> auch in die Routine kommt auch wieder doch danach ist kein RX Complete
>> mehr tätig.
>
> Das Problem steckt irgendwo in den Codezeilen, die du nicht gezeigt hast

Ok so werde ich mal in meinem Code schauen. Meine Frage war ja lediglich 
ob das erlaubt ist. In einem Iterruptaufruf den Interrupt auszuschalten 
und im Interrupt wieder ein zu schalten.
Gast #3073485
Lesenswert?

>Ok so werde ich mal in meinem Code schauen. Meine Frage war ja lediglich
ob das erlaubt ist. In einem Iterruptaufruf den Interrupt auszuschalten
und im Interrupt wieder ein zu schalten.

So viele Fehler...
In einem Interrupt sind Interrupts sowieso gesperrt.
Nein, man sollte nicht in einem Interrupt interrupts nochmals enablen.
Nein. Es gibt keinen Tasteninterrupt. Das ist eine so elendiglich 
schlechte idee, dass man's einfach vergessen sollte.
Gast #3073500
Lesenswert?

Ich muss mich korrigieren. Eigentlich ist alles falsch. Alles. Man fragt 
sicher nicht in einer Interrupt Routine eine Taste ab. Eine Taste laeuft 
ueber einen eigenen Timer-Entpreller und steht nachher als Boolean, oder 
als Byte zur verfuegung.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren