Gast
#282918
Hallo, ich möchte, dass mein Controller reagiert, wenn ich eine von 5 Tasten drücke. Dazu habe ich bei meinem mega16 PortC auf Eingang geschaltet und die Pullups aktiviert. Drücke ich den Taster, so wird der entsprechende Pin an PortC und INT0 auf 0V gesetzt. Der Interupt wird bei falender Flanke ausgelöst. Die Interruptroutine soll nun nachgucken, welche Taste gedrückt wurde und entsprechend reagieren. Mein Code der Interruptroutine ist folgender: interrupt1: sbis PINC, 1 inc pls sbis PINC, 2 ldi pls,0x00 nop reti Im Simulator des AVR Studio 4.12 funktioniert der Code genau so, wie ich es erwarte. Die Befehle werden nur ausgeführt, wenn der entsprechende Taster gedrückt wurde.(die Bits im Simulator setzen/löschen) Lade ich das Ganze aber in meinen Controller, wird immer ldi pls,0x01 ausgeführt, obwohl die Pins durchgehend 5V haben.(habe ich kontrolliert) Wenn ich die Taster aber an PortD anschließe und im Code oben PINC durch PIND ersetze, funktioniert es komischerweise. Habe ich etwas übersehen, was ich evtl. aktivieren/deaktivieren muss, damit ich PORTC für I/O verwenden kann? Oder hab ich mein Controller zerstört? Gruß Christian