Forum: Mikrocontroller und Digitale Elektronik interner Pullup


von Baudi (Gast)


Lesenswert?

Hallo,

ich hab da mal ne kleine Frage. Ich habe an einem ATMEGA8 Masse über 
einen Taster an PIND0 angeschlossen. Den internen Pullup habe ich 
aktiviert.
DDRD = 0b11110000;
POTRD = 0b00001111;

Wenn ich jetzt den PIN mit if(PIND & (!(1<<PIND0))) abfrage passiert 
nicht das was passieren sollte in der if Anweisung. Hat jemand eine Idee 
woran das liegen könnte? Mit externem Pullup funktioniert es perfekt.

von Matthias Kölling (Gast)


Lesenswert?

Also die Abfrage verwirrt mich etwas. Ich hätte geschrieben:
if(!(PIND & (1<<PIND0)))
{
}
Gruß Matthias

von Baudi (Gast)


Lesenswert?

Vielen Dank, das wars, sie haben mir sehr geholfen!

Dankeschön

von sous (Gast)


Lesenswert?

Wenn es daran lag, wie kann es dann vorher mit externem Pullup 
funktioniert haben?

PS: Sorry für das lange 'Hä..', ich wollte es kürzer machen, aber der 
automatische Überschriftenzensor hatte etwas dagegen!   :)

von Baudi (Gast)


Lesenswert?

Weil ich den externen Widerstand auf 5V hatte und denn ohne negierung 
abgefragt habe, also Pulldown.

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.