Forum: Mikrocontroller und Digitale Elektronik Kleine Frage zur Entprellung von Tastern


von Dariusz K. (geqoo)


Lesenswert?

Guten Abend alle zusammen,

Ich soll mich jetzt mal aufs Glatteis begeben und für unseren atmega16 
ein Programm schreiben.
Ich bin gerade im Kapitel Entprellung und hätte dazu eine einfache 
Frage.
Ich habe auf mikrocontroller.net mal bei Entprellung nachgelesen und 
dort die Funktion von Christian Riggenbach angeschaut 
(http://www.mikrocontroller.net/articles/Entprellung#Softwareentprellung)

Das erscheint mir soweit auch alles schlüssig.
In dem Beitrag wird aber nicht so richtig beschrieben, welcher Zustand 
jetzt was ist.
1
  entprellung( &PINB, (1<<PINB2) ); // ggf. Prellen abwarten 
2
  if( PINB & (1<<PINB2) )           // dann stabilen Wert einlesen
3
  {
4
    // mach was
5
  }
6
  else
7
  {
8
    // mach was anderes
9
  }

Ist der if Block, wenn der Taster gedrückt ist und der else Block das, 
wenn er nicht gedrückt ist - andersrum, oder etwas ganz anderes?

Schonmal danke für eure Hilfe!

von troll nummer 42 (Gast)


Lesenswert?

Dariusz K. schrieb:
>
> Ist der if Block, wenn der Taster gedrückt ist und der else Block das,
> wenn er nicht gedrückt ist - andersrum, oder etwas ganz anderes?
Das entscheidest Du. Je nachdem ob der Taster gegen Masse oder gegen VCC 
verschaltet ist.

von Dariusz K. (geqoo)


Lesenswert?

Ich habe den Taster auf Masse geschaltet und meinen internen PullUp 
aktiviert.
Wie sieht das dann in dem Fall aus, welcher Teil ist was?

von Thomas E. (thomase)


Lesenswert?

Dariusz K. schrieb:
> Ist der if Block, wenn der Taster gedrückt ist und der else Block das,
> wenn er nicht gedrückt ist - andersrum, oder etwas ganz anderes?
Die übliche Beschaltung eines Tasters ist Active low. D.h. wenn der 
Taster gedrückt wird, zieht er den per Pullup auf Vcc liegenden Portpin 
auf GND.
Also andersrum.

mfg.

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.