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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren