Ich habe zwar noch nie mit so einem großen Controller wie dem Mega32 gearbeitet, habe aber schon öfter mal gelesen, dass das JTAG-Interface einem in die Suppe spucken kann. Das besteht beim Mega32 aus den Anschlüssen C5, C4 (!!!), C3 und C2. Im Auslieferungszustand ist dieses Interface aktiv, wodurch diese Anschlüsse zunächst nicht als "normale" Anschlüsse verwendet werden können.
Wenn Du auf Fusebit-Ebene das JTAG-Interface deaktivierst, könnte es eventuell klappen.
Oder Du versuchst, ohne die genannten 4 Anschlüsse auszukommen.
Auf alle Fälle muss (wie Kampi ja schon geschrieben hat) sichergestellt sein, dass der Anschluss auf irgendeinem "sauberen" Pegel liegt, wenn der Taster offen ist. D.h. er darf nicht einfach "in der Luft hängen", sondern muss über einen hochohmigen Widerstand auf +5V oder GND gezogen werden (je nachdem ob der Taster nach GND oder +5V geht). Am einfachsten geht das mit den eingebauten PullUp-Widerständen, die Du über das PORT-Register aktivierst, wenn ein Anschluss als Eingang konfiguriert ist.
Der Rest vom Programmcode ist o.k.!
Lesezeichen