Hallo zusammen, ich versuche gerade auf dem myAVR MK2 mein erstes Programm zum Laufen zu bekommen, aber irgendwie will es nicht. Was soll es tun? LEDs am PORTC einschalten und nachdem ich eine Taste am PORTD gedrückt habe aus schalten und auch aus bleiben. Was aber passiert: Die LEDs gehen wieder an, wenn ich den Taster loslasse. Das kann ich mir nicht erklären. Hier mein Code: start: ; PORTC als Ausgang ldi r16, 0xFF out DDRC, r16 ldi r16, 0xFF out PORTC, r16 ; PÓRT D als Eingang ldi r16, 0x00 out DDRD, r16 ; Pull-Up aktivieren ldi r16, 0xFF out PORTD, r16 main: sbis PIND, 2 rcall switch_off rjmp main switch_off: mov r17, r16 ldi r16, 0x00 out PORTC, r16 mov r16, r17 ret
Hallo, wenn man eine Subroutine benutzt, sollte man nicht vergessen, den Stackpointer als erstes zu setzen. So stürzt der AVR beim ret einfach nur ab. https://www.mikrocontroller.net/articles/AVR-Tutorial Gruß aus Berlin Michael
:
Bearbeitet durch User
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.