Taster Entprellen in C

OP #5012121
Lesenswert?
• ▲
▼
hallo,

ich weiß es gibt hier einen ganzen Artikel dazu und der soll auch sehr 
gut sein. Es ist aber noch vieeeel zu anspruchsvoll für mich.

Ich möchte aber auf schnellem Wege eine ganz simple Tasterentprellung 
ausprobieren, und zwar mit Zeitverzögerung.

könnte man das mit delay machen?

Wie könnte so ein Code aussehen, der einen Taster entprellt, und z.b 
eine Led einschaltet.

Könnte jemand hier sein Hirn auf Werksreset schalten und so einen 
Anfängercode machen?
Beitrag #5012126 wurde von einem Moderator gelöscht.
Gast #5012136
Lesenswert?
• ▲
▼
O. A. schrieb:
> Könnte jemand hier sein Hirn auf Werksreset schalten
Nein!
(habe keine Bereitschaft)

Du hast vergessen Zielprozessor und Sprache zu erwähnen.
Halt der ganze Kontext; Sinn und Zweck, usw.
Das ist für mich ein gewichtiger Grund anzunehmen, dass du gar nicht an 
einer Lösung interessiert bist.

Und, bitte nicht so sehr um den Hirn Reset anderer Leute bemühen, 
sondern eher ums eigene lernen. Scheint mir zielführender zu sein.
Debouncing ist übrigens etwas was hunderttausende mal I-Net zu finden 
ist.
Gast #5012140
Lesenswert?
• ▲
▼
Macht manzwar überhaupt nicht, aber quick und dirty (gewöhn es dir nicht 
an):

Bei jeder Wertänderung, wartet dieser Code 200mS - dann sollte das 
Prellen vorbei sein. Das ist Code für einen ATxMega.
1
static unsigned char ucTaster = 0;
2

3
if((PORTA.IN & PIN1_bm) && ucTaster == 0){
4
  _delay_ms(200);
5
  ucTaster = 1;
6

7
  //Hier dein Code
8
}
9
else if(!(PORTA.IN & PIN1_bm) && ucTaster == 1){
10
  _delay_ms(200);
11
  ucTaster = 0;
12
}
#5012144
Lesenswert?
• ▲
▼
O. A. schrieb:
> Es ist aber noch vieeeel zu anspruchsvoll für mich.

O. A. schrieb:
> Könnte jemand hier sein Hirn auf Werksreset schalten und so einen
> Anfängercode machen?

Ähm, du möchtest, dass dir jemand neuen Code schreibt, weil du den 
bestehenden nicht verstehst? Und was hast du dabei gelernt? Wenn du 
selbst keine Zeit und Arbeit investieren willst, musst du wohl das 
nehmen was es schon gibt.

Das schöne an Peters Code ist, dass man den erstmal einfach benutzen 
kann und wenn man tiefer einsteigen möchte, kann man dann noch versuchen 
ihn zu verstehen. Nötig ist das aber nicht unbedingt.
Gast #5012319
Lesenswert?
• ▲
▼
@O. A.
Viele haben hier eine ausgeprägte Allergie gegen Copy & Past.

Womöglich möchtest Du ein Beispiel, welches auf deiner CPU läuft und an 
Deinem I/O-Pin hängt.

Dumm ist nur folgendes: Bei allem anderen musst Du verstehen, was 
passiert um es nutzen zu können.

Also viel Glück bei Deinem Unterfangen.
Gast #5012458
Lesenswert?
• ▲
▼
Zum reinen Entprellen brauchst du nur den entsprechenden Eingang per 
Timerabfrage in solchen Intervallen abzufragen, die garantiert grösser 
sind als die max. Prellzeit des Tasters. Den Tastereingang mit einem 
Abfrageintervall von  30-50 ms abzufragen ist i.d.R. ausreichend.

Der Mehraufwand bei vielen Entprellroutinen dient einzig dazu, 
eingestreute Störimpulse bzw. Spikes zu unterdrücken, oder weitere 
Komfortfunktionen zu integrieren.

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.