Hallo, ich habe ein Problem mit dem Internal Pullup. Das Setzen des internen Pullups zeigt keine Wirkung, die Schleife in der Funktion Setup wird offensichtlich, ohne das der Taster gedrückt wird, immer wieder durchlaufen, so dass die Anzeige flackert. Wenn ich einen externen Widerstand einbaue, funktioniert alles korrekt, jeder Tastendruck zählt die Variable tmpMinute um eins hoch und zeigt diese an. Im Debugger läuft übrigens auch alles korrekt (mit internem Pullup). Was kann es sein? TIA Mray
Wer setzt denn EndFlag? NB: Bei lokalen Variablen ist volatile meist unnötig.
Das Programm ist noch in Arbeit, EndFlag wird noch nicht gesetzt, soweit bin ich noch nicht. Mir ist natürlich klar, dass in dem jetzigen Zustand die Schleife nie verlassen wird, im Moment möchte ich das korrekte hochzählen auf Tastendruck realisieren. Ohne volatile habe ich es übrigens nicht zum Laufen bekommen, alle Befehle in der die Variablen vorkamen wurden nicht ausgeführt. Mit volatile funktionierte es tadellos. Ich hatte das auch so verstanden, dass ich volatile nur verwendedn muss, wenn die Variablen in Unterfunktionen verändert werden, aber wie gesagt, es klappte nur mit volatile.
ersetze PIND = 0b00001111; /* internal Pullups */ durch PORTD = 0b00001111; /* internal Pullups */ ersetze if (!(PIND & 1<<2)) durch if (!(PIND & (1<<2)))
Autsch, da hätte ich auch selber drauf kommen können. Jetzt funktioniert als wie es sollte.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.