mare_crisium,
bin nun Dein Programm durchgegangen.
Eine Sache ist mir gleich zu Beginn aufgefallen.
Der Mega8515 hat keinen Timer2.
In irgendeiner Version der letzten Postings hast Du die Interrupttabelle vom Mega8 eingebaut.
Muss ehrlich gestehen, ich habe das in Deinem letzten Posting zwar gelesen(Dazu habe ich den Timer2-Interrupt wieder aktiviert.),
mehr ueberlesen, aber beim 1.TimerCompare ist es mir dann aufgefallen.
Wenn sich Stoplersteine immer so leicht finden lassen wuerden....![]()
Eine kleine Aenderung habe ich dann noch hier vorgenommen. Bringt nicht wirklich viel.. ein paar Takte
Der MenuStack ist ja ne schoene Sache. Aber waere es nicht einfacher die Tasterkennung in einem Register dezimal abzulegen?Code:STACK8_CREATE: push r25 in r25,SREG push r16 push r17 push xl push xh ; reservierten Speicherbereich mit Nullen füllen mov xl,r16 clr xh adiw xh:xl,STACK8CTL_LNG clr r17 STCK8_CRT00: ; 20100503 vor STCK8_CRT00 geschoben clr r17 st z+,r17 sbiw xh:xl,0x0001 ; Byte-Zähler abzählen brne STCK8_CRT00 ; Sprung, wenn noch nicht fertig ; Zeiger wieder auf erstes Byte von STACK8CTL zurückstellen sbiw zh:zl,STACK8CTL_LNG ; Länge des Steuerblocks subtrahieren sub zl,r16 clr r17 sbc zh,r17 ; Kapazität des Stacks subtrahieren ; Stackkapazität speichern std z+STACK8CTL_CAP,r16 ; Kapazität speichern pop xh pop xl pop r17 pop r16 out SREG,r25 pop r25 ret
Was wuerde dagegen sprechen? - Ich meine als Lernobjekt ist die Sache mit dem Stack ja suuuuper.
... kann es natuerlich sein, dass Du in Deinem Hinterkopf schon weiter geplant hast, als ich es bisher ueberschauen kann?







Zitieren
Lesezeichen