Hardware: atmega8, 16x2 lcd-display
Ich habe versucht ein einfaches Taster-Beispiel ans Laufen zu bekommen,
wie im GCC-Tutorial beschrieben.
Schaltungsaufbau hab ich nicht betrieben. Ich simuliere den Tastendruck
via Kabel, also: Kabel von PD7 auf GND während des Betriebs.
1 | DDRD &= ~(1 << PD7); // Port 7 auf eingang
|
2 | PORTD |= (1 << PD7); // pullup
|
3 | int i = 0;
|
4 | if(!(PORTD & (1 << PD7)))
|
5 | i = 1;
|
6 | //lcd-ausgabe von i hier
|
Nun bleibt i aber immer 0, egal ob ich den Tastendruck simuliere oder
nicht. Ich steh grad echt aufm Schlauch. Egal ob ich die Bedingung in
der If-Abfrage negiere oder nicht, es kommt immer ein konstantes
Ergebnis heraus und nicht - wie erhofft - ein Wechsel.
Durchgemessen habe ich. am Pin liegen 5V (Also Pullup aktiv?)
Hat jemand eine Idee? Oder muss ich doch extern einen Pullup zuschalten?