Interrupt aus und einschalten

Gast #3073393
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
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.
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
Gast
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
>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
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.
Kurt B. schrieb:

> Ok so werde ich mal in meinem Code schauen. Meine Frage war ja lediglich
> ob das erlaubt ist.

Wer will dich daran hindern?
Der µC sicher nicht. Der führt einfach nur die Befehle aus. Der Rest ist 
ihm wurscht.
Ob es eine gute Idee ist, ist eine andere Frage. Aber die interessiert 
den µC wieder nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.