Gast
#4467652
Guten Abend allerseits,
zuerst möchte ich darauf aufmerksam machen, dass ich
ein Anfänger in der Assembler Programmierung bin.
Leider komme ich Krankheitsbedingt nicht dazu, mich regelmäßig
mit der Assembler Programmierung zu beschäftigen. So ist es auch
nun wieder fast ein Jahr her, dass ich mein Programm bearbeitet habe.
Wie alle Anfänger habe ich ein Uhrenprogramm für ein zweizeiliges
LCD geschrieben und benutze dazu einen Atmega 8.
Soweit funtioniert alles so wie es soll. Allerdings fehlen noch
zwei Dinge:
1. Die Festlegung wieviel Tage die einzelnen Monate haben sollen
( bisher hat jeder Monat 31 Tage)
2. Die Festlegung der Schaltjahre
( um dem Monat FEB 28 oder 29 Tage zuzuordnen)
So halbwegs schwebt mir auch vor wie so etwas umzusetzen ist.
Nur finden die "Prüfungen" dieser Parameter ja in der ISR statt.
Die ISR soll ja möglichst klein gehalten werden?
Sollte man die ISR mit einem RCALL verlassen um diese Prüfungen
vorzunehmen?
Hier mal mein bisheriger Code für den maximalen Monatstag (mtmax)
Datumtag:
push temp1
mov temp1, Monat
cpi temp1, 0
breq Mon1
cpi temp1, 1
breq Mon2
cpi temp1, 2
breq Mon3
cpi temp1, 3
breq Mon4
cpi temp1, 4
breq Mon5
cpi Temp1, 5
breq Mon6
cpi temp1, 7
breq Mon7
cpi temp1, 8
breq Mon8
cpi temp1, 9
breq Mon9
cpi temp1, 10
breq Mon10
cpi temp1, 11
breq Mon11
Mon1:
ldi temp1, 31
mov mtmax, temp1
rjmp Ausstieg
Mon2:
ldi temp1, 28
mov mtmax, temp1
rjmp Ausstieg
.
.
.
.
.
Ausstieg:
pop temp1
Macht man so etwas in der ISR oder springt man mit
einem RCALL aus der ISR raus?