problem in asm quellcode

Gast #328432
Lesenswert?
• ▲
▼
Hallo
ich hab heut ein asmfile gemacht, mit dem ich auf nem lcddisplay ein
menu anzeigen kann. assemblieren und so kein problem. lad ich das prog
in den mega16 zeigt er aLLES an und so. nur wenn der int0 ausgelöst
wird, das "anderungflag" gesetzt wird, und er dann eigentlich bei
tastendruck einen menupunkt weiterspringen sollte, passiert nix mehr.

luxx
Angehängte Dateien:
Gast #328433
Lesenswert?
• ▲
▼
Die Datei läßt sich nicht entzippen (ungültige Komprimierungsmethode).

Allgemein ist aber ein externer Interrupt eine äußerst ungünstige
Methode, um Tasten zu entprellen.
Ein Timerinterrupt ist da wesentlich besser geeignet (Codesammlung).


Peter
Gast #328436
Lesenswert?
• ▲
▼
Also was mir auf die schnelle aufgefallen ist:
1. Die in der ISR verwendeten temporären Variablen werden scheinbar
auch im Hauptprogramm verwendet.
2. Du sicherst diese nicht zum Beginn der ISR ab (um sie am Ende
wiederherzustellen)
3. Du änderst verwendest Befehle in der ISR welche die Flags
beinflussen. (Absicher und wiederherstellen von SREG fehlt)

Ich werde mal schauen ob ich das in VMLAB simulieren kann.

cu
Hauke

P.S.
Dein Code ist echt grausam zu lesen.
Du solltest mal eine optische Struktur in deine Sprünge und Skips
bringen.
Weiterhin sind bezeichnungen wie temp1 2 3 nicht wirklich hilfreich,
wenn die Variablen sich mehr vom Nahmen unterscheiden ist es
einfacher.
bis dann
Gast #328437
Lesenswert?
• ▲
▼
P.P.S.

Eine korrekturfunktion im Forum wäre machmal echt genial.

"3. Du änderst verwendest Befehle in der ISR welche die Flags
beinflussen. (Absicher und wiederherstellen von SREG fehlt)"

sollte

3. Du verwendest Befehle in der ISR welche die Flags
beinflussen. (Das Absichern und Wiederherstellen von SREG fehlt)

heißen

cu
Hauke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren