- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Atmega8 Interrupt Flags

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Jedoch was ich noch nicht ganz in diesem Zusammenhang verstehe ist, wieso der Taster erneut prellt. Hierfür wurden doch die PullUP Widerstände gesetzt (Portd = &B11111111 ).
    Der PullUp-Widerstand kann das Prellen eines Tasters nicht verhindern! Sein Job ist es, den Eingangspin auf ein sauberes "High" zu ziehen, wenn der Taster nach Masse hin geöffnet ist, d.h. der Pin "frei in der Luft" hängt. Wenn der Taster nach Masse geschlossen wird, gibt es meistens nicht nur einen einzigen, sauberen H-L-Übergang, sondern die Kontakte können halt ganz kurz ein paar mal hin und her schwingen, bevor sie ihre neue Position erreichen. Auf einem Oszi kann man sehen, dass tatsächlich oft ein paar H-L- und L-H-Übergänge hintereinander kommen -eben weil der Taster prellt.

    GIFR.INT1 bzw. GIFR.INT0 auf 1 zu setzen wäre genau das, was ich auch versucht hätte, um die Folgen eines Nachprellens in der ISR zu beheben. Seltsam, dass es nicht klappt... Und Du hast es auch richtig zugeordnet, d.h. am Ende der ISR vom INT1 wird GIFR.INT1 auf 1 gesetzt, und das selbe mit ISR INT0 und GIFR.INT0?

  2. #2
    Benutzer Stammmitglied Avatar von Wombatz
    Registriert seit
    10.06.2011
    Beiträge
    70
    Blog-Einträge
    1
    Genau das habe ich gemacht...

    Interrupt0:
    Portb.2 = 0 'Gelbe LED aus
    Portb.1 = 1 'Grüne LED für 5 Sek ein
    Waitms 5000
    Gifr.int0 = 1

    Return

    Interrupt1:
    Portb.2 = 0 'Gelbe LED aus
    Portb.3 = 1 'Rote LED für 5 Sek ein
    Waitms 5000
    Gifr.int1 = 1

    komisch...

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,
    geht es mit
    Gifr.intf0 = 1
    bzw.
    Gifr.intf1 = 1
    ?
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Benutzer Stammmitglied Avatar von Wombatz
    Registriert seit
    10.06.2011
    Beiträge
    70
    Blog-Einträge
    1
    Nein leider nicht...hatte ich auch schon ausprobiert!!!

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,
    echt seltsam. GIFR.INTF0 - INTF1 wäre richtig. Vielleicht die $hwstack Einstellung. Da würd ich mindestens $hwstack=40 versuchen, nicht das da noch im Stack was schiefgeht.

    Falls Du es noch nicht kennst: http://halvar.at/elektronik/kleiner_...swstack_frame/

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Benutzer Stammmitglied Avatar von Wombatz
    Registriert seit
    10.06.2011
    Beiträge
    70
    Blog-Einträge
    1
    Ne in der Tat, auch wenn ich den Hardware Stack auf 40 setze, ist es das gleiche! Egal welcher... also jeder 2.Interrupt wird gelöscht und nur der erste wird ausgelöst. Wenn ich den GIFR.INTF0/oder 1 = 1 weglasse... dann führt der den zweiten Interrrupt aus, jedoch kann es sein, dass der Taster prellt und erneut auslöst.

    Danke trotzdem für den Hinweis HW-Stack...wieder was gelernt =)

Ähnliche Themen

  1. Interrupt bei TWI Slave (Atmega8)?
    Von ingo pirker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 20.11.2009, 22:36
  2. Status-Flags ??
    Von bL1nK im Forum Assembler-Programmierung
    Antworten: 1
    Letzter Beitrag: 28.01.2007, 14:39
  3. Externer Interrupt ATMega8
    Von Ronnie.B im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 19.12.2005, 17:40
  4. atmega8 rx interrupt
    Von sg10241024 im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 20.11.2005, 17:02
  5. Flags 8051
    Von im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 5
    Letzter Beitrag: 17.12.2004, 07:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test