Forum: Mikrocontroller und Digitale Elektronik Warum Software-Entprellung besser?


von Manja (Gast)


Lesenswert?

Hallo liebe Gemeinde,

kann mir jemand erklären, warum die Hardware-Entprellung (quasi mit dem 
Kondensator zu glätten) für einen Taster an dem uC keine gute 
Alternative ist? Irgendwie habe ich was über einen kurzzeitigen enormen 
leistungsverbrauch, Spannungszusammenbruch gehört, dass der uC sich 
reseten kann. Wie genau ist das gemeint?

Ich finde sonst Software-Entprellung viel aufwendiger 
(Interrupt-Routinen schreiben usw) als nur einfach einen Kondi zwischen 
Taster und GND zu stecken=)

Ich bitte um eine Aufklärung ;) Danke

von Falk B. (falk)


Lesenswert?

@Manja (Gast)

>kann mir jemand erklären, warum die Hardware-Entprellung (quasi mit dem
>Kondensator zu glätten) für einen Taster an dem uC keine gute
>Alternative ist?

sie ist schon gut, aber einige Leute sehen es als Kostentreiber für ein 
paar Cent für R und C an ;-)

>Irgendwie habe ich was über einen kurzzeitigen enormen
>leistungsverbrauch, Spannungszusammenbruch gehört, dass der uC sich
>reseten kann. Wie genau ist das gemeint?

Da hst du was falsch verstanden. Wenn man Entprellung in Hardware 
RICHTIG macht, passiert da gar nichts. Bei einem nicht häher genannten 
Evaluationboard einer nicht näher genannten Elektronikverwertungsfirma 
mit P gab es einen Bug, der den Controller abstürzen lies. Das ist aber 
nicht der Normalfall.

>Ich finde sonst Software-Entprellung viel aufwendiger
>(Interrupt-Routinen schreiben usw)

Das macht man EINMAL und dann is gut, in neuen Projekten kopiert man es 
einfach.

> als nur einfach einen Kondi zwischen
>Taster und GND zu stecken=)

DAS ist KEINE solide Entprellung, da fehlt ein Widerstand. Wie man 
es richtig macht, siehe Artikel Entprellung

von Claus M. (energy)


Lesenswert?

>Warum Software-Entprellung besser?

Weil man Software einfach ändern kann. Und ne Routine die im Takt von x 
ms aufgerufen wird brauchst du eh bei jedem nur etwas groesseren 
Projekt, da kannst du gleich die Tastenabfrage inkl. Entprellung 
einbauen.

von Manja (Gast)


Lesenswert?

Ok, danke. Das mit den Kosten ist echt bisschen lächerlich.. OK, vllt 
wenn man 100 Taster hat, dann ja=)

Und natürlich ist der Widerstand bei mir dran=)

Aber macht die Software-Lösung nicht den uC (vllt minimal) langsamer?

von Εrnst B. (ernst)


Lesenswert?

Manja schrieb:
> Aber macht die Software-Lösung nicht den uC (vllt minimal) langsamer?

Ja, aber: Wenn die paar Promille mehr an Rechenzeit wirklich ins Gewicht 
fallen, hast du ein ganz anderes Problem.

von AmpersSkiller (Gast)


Lesenswert?

Deine SW Entprellroutine schreibst du einmal und verwendest sie immer 
wieder.

Zu den Kosten:
Klar fallen Centbeträge für einen Bastler nicht ins Gewicht, aber wenn 
eine Firma eine Stückzahl von 500000 Boards oder mehr (wir sprechen hier 
nicht von 100, denn auch das ist lächerlich) hat, ist das sehr wohl 
relevant.

von Karl H. (kbuchegg)


Lesenswert?

Klar, die Kosten an sich sind nicht wirklich für uns Bastler relevant. 
Was bei uns aber schon wieder mehr ins Gewicht fällt: Eine Hardware 
Entprellung braucht ja auch Platinenplatz. Irgendwo müssen die Bauteile 
ja hin.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die Hardware-Entprellung hat den gravierenden Nachteil, dass die 
Zeikonstante durch R und C vorgegeben sind. Wählt man sie zu lang, hat 
der Anwender das Problem, dass Tastendrücke verloren gehen, weil die 
Schaltung gegenüber dem Anwender einfach zu lahm ist. Wählt man die 
Konstante zu kurz, können gerade bei gealterten Tasten wieder Preller 
durchkommen. Eine gut geschriebene Routine kann sowohl schnell sein, als 
auch anständig filtern, so dass jeder Tastendruck ein Erfolg wird. 
Früher oder später kehrt man der Hardwarevariante den Rücken zu.

von Karl H. (kbuchegg)


Lesenswert?

Ganz speziell die PeDa Entprellung hat dann noch ein paar Zuckerl, auf 
Grund derer der Gedanke nach einer Hardware Entprellung noch nie 
aufgekommen ist. Denn mit der Hardware-Entprellungt kriege ich eben 
nicht zb einen Autorepeat oder eine Unterscheidung zwischen kurzen und 
langen Tastendrücken frei Haus geliefert.

Gut, kurz/lang verwende ich nie. Aber das Autorepeat ist schon Klasse, 
zb bei Up/Down Zahleneingaben. Auf Up-Taster drücken und die Zahl wird 
um 1 größer. Bleib ich drauf, dann setzt nach kurzer Zeit der Autoreapat 
ein und die Zahl wird im (konfigurierbar) 1/10 Sekunden Takt um 1 größer 
(oder auch um 10, je nachdem was ich programmiere und welchen Bereich 
ich abdecken muss). Und das ganze mit einem simplen
1
...
2
3
  while( 1 ) {
4
5
    if( get_keypress( 1 << KEY_UP ) )
6
      value++;
7
8
    if( get_keyrepeat( 1 << KEY_UP ) )
9
      value += 10;
10
11
    if( get_keypress( 1 << KEY_DOWN ) )
12
      value--;
13
14
    if( get_keyrepeat( 1 << KEY_DOWN ) )
15
      value -= 10;
16
17
    ...

mach das mal mit Hardware-Entprellung so angenehm in der Programmierung 
UND in der Benutzerbedienung :-)

von Karl H. (kbuchegg)


Lesenswert?

Manja schrieb:

> Aber macht die Software-Lösung nicht den uC (vllt minimal) langsamer?

Es zeigt sich, dass praktisch jedes ernstzunehmende Programm sowieso 
intern sowas wie einen Basistakt in Form von ISR-Aufrufen alle paar 
Millisekunden hat bzw. braucht. Du paar zusätzlichen Anweisungen da 
drinnen, die die Entprellung von maximal 8 Tastern gleichzeitig 
erledigen, fallen allesamt unter 'ferner liefen'.

von M. N. (Gast)


Lesenswert?

Es gibt auch noch einen Zwitter, der die Hardwareentprellung mit 
Software unterstüzt. Entgegen der reinen Softwareentprellung, eledigt 
ein RC-Glied die schnelle Filterung und die Software sorgt für 
definierte Pegel am Eingang. Aber lies selber, wie dies die Gemüter 
erregt:
Beitrag "EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."

Wenn Du mehrere Taster und/oder Schalter entprellen mußt, ist auf jeden 
Fall die Lösung per Software sinnvoll. Vielleicht hilft Dir dies weiter.
Beitrag "Entprellung von Tastern"

von Falk B. (falk)


Lesenswert?

Aus EMV-Sicht sind RC-Filter bisweilen unerläßlich. Auch kann man 
deutlich schnellere Signale als nur Tasten nur per Hardware sinnvoll 
filtern. Last but not least braucht jedes abtastende System eine analoge 
Bandbegrenzung am Eingang. ;-)

von Reinhard Kern (Gast)


Lesenswert?

Falk Brunner schrieb:
> Last but not least braucht jedes abtastende System eine analoge
> Bandbegrenzung am Eingang.

Einen Vorfilter für jede Taste? Das ist barer Unsinn. Es geht ja nicht 
um einen Sinuseingang, sondern um das Erkennen stabiler 0 oder 1 
Zustände. Völlig abwegiges Theorieverständnis.

Die Softwareentprellung funktioniert seit rund 40 Jahren problemlos, da 
sollte sie doch allmählich verstanden sein. Die benötigte Rechenzeit war 
damals schon unerheblich. Das einzige was eine Taste braucht ist ein 
Überspannungsschutz, wenn sie entsprechend exponiert ist.

Gruss Reinhard

von Patrick W. (pawi777)


Lesenswert?

Reinhard Kern schrieb:
> Einen Vorfilter für jede Taste? Das ist barer Unsinn. Es geht ja nicht
> um einen Sinuseingang, sondern um das Erkennen stabiler 0 oder 1
> Zustände. Völlig abwegiges Theorieverständnis.

Völlig abwegiges Ironieverständnis ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.