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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.