Probleme mit Taster

Gast #12838
Lesenswert?
• ▲
▼
Hi,
ich habe an den µC einen Taster mit 10k Pullup angeschlossen.
In der main aktiviere ich den Interrupt

outp((1<<INT0), GIMSK);       //int0 einschalten
outp((1<<ISC01), MCUCR);    //falling edges
sei();


Wenn der Interrupt aufgerufen wird schalte ich den Interrupt aus und 
warte erst 120ms @ 4MHz. Dann wird eine Funktion aufgerufen, die ~8s 
dauert. Danach darf wieder auf Tastendruck reagiert werden, also 
aktiviere ich den Interrupt wieder.
Das Problem ist nun, dass beim aktivieren des Interrupts der Interrupt 
gleich wieder ausgelöst wird. Ich erhalte also Pro tastendruck meistens 
2 (nie mehr) aufrufe der funktion doSTH().
Hat jemand ne Ahnung wieso?
 SIGNAL(SIG_INTERRUPT0)
{
  outp(0x00, GIMSK);  //Int0 ausschalten
  u08 i, j, k;    //warte 120ms zum entprellen
  for(k = 0; k < 7; k++){
  for(j = 0; j < 255; j++){
  for(i = 0; i < 255; i++){
    asm volatile("nop");
  }
  }
  }

  sei();      //interrupts wieder anschalten (werden für doSTH() 
benötigt)
    doSTH();      //Funktion die ca 8s dauert

    outp((1<<INT0), GIMSK);  //Int0 wieder anschalten

}


cu
MB
Gast #12839
Lesenswert?
• ▲
▼
Hallo M,

der Taster prellt, d.h. er schliesst und öffnet ganz kurz hintereinander 
ein paar mal. Je nachdem wie schnell Deine Erkennungsroutine ist, 
bekommst Du 2 oder mehr "Erkennungen".

Lösung ist möglich, indem eine Zeitverzögerung nach dem ersten erkennen 
einprogrammiert wird, und der Interrupt so lange gesperrt wird.

HTH,
Klaus

Infos zu AVR und 8051 unter: http://home.t-online.de/home/k.leidinger

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.