Abgesehen von dem, was bereits gesagt wurde, funktioniert dein logischer Programmablauf auch nicht.
Es hakt an dieser Stelle:
SBIS PORTD,Taster ;BIT 2 prüfen (Taster1 liegt auf PD2)
BREQ led_on ;springen wenn Taster gedrückt
Ändere es in:
SBIC PIND, Taster
RJMP led_on
Weil der AVR nach einem Reset (oder Power-Up) bei Adresse 0 anfängt den Code auszuführen.Warum ist es so wichtig an den Anfang des Flashspeichers zu schreiben?
Weil PIND das Input-Register ist. Dort kannst du den aktuellen "externen" Zustand der Pins abfragen. Für Ausgaben (z.B. LED schalten) nimmst du PORTD.SBI PIND,5 aber nicht
Lesezeichen