diff options
author | Erich Eckner <git@eckner.net> | 2020-11-09 09:10:31 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2020-11-09 09:10:31 +0100 |
commit | a659d1dc9065ceda8c15d445ea32865e393bc9ff (patch) | |
tree | 9792fed8a92bcae0f87e637f5fed20c8e6d792d9 | |
parent | 30721549452d628e1b0e3eccfc7ca1e2cd7639b4 (diff) | |
download | Uhr-a659d1dc9065ceda8c15d445ea32865e393bc9ff.tar.xz |
Binaeruhr.asm: TicsH wird nicht gebraucht
-rw-r--r-- | Binaeruhr.asm | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/Binaeruhr.asm b/Binaeruhr.asm index 4e50cc4..2e87f3d 100644 --- a/Binaeruhr.asm +++ b/Binaeruhr.asm @@ -8,13 +8,12 @@ .INCLUDE "tn2313def.inc" .EQU Spalte, 31 ; die anzuzeigende Spalte (als Bitmaske fuer PORTD) -.EQU TicsH, 30 ; 300Hz-Tics High -.EQU TicsL, 29 ; 300Hz-Tics Low -.EQU nTicsL, 28 ; wann ist die naechste Sekunde gemessen in 300Hz-Tics Low -.EQU Status, 27 ; Bit 0: Funksignal +.EQU Tics, 30 ; 100Hz-Tics +.EQU nTics, 29 ; wann ist die naechste Sekunde gemessen in 100Hz-Tics +.EQU Status, 28 ; Bit 0: Funksignal ; Bit 1: kein Fehler im aktuellen Empfang ; Bit 2: kein Fehler in der aktuellen oder letzten Minute -.EQU lHTicsL, 26 ; wann war die letzte Funk Low-High-Flanke in 300Hz-Tics Low +.EQU lHTics, 27 ; wann war die letzte Funk Low-High-Flanke in 100Hz-Tics .EQU Stunde, 0 ; anzuzeigende Stunde .EQU Minute, 1 ; anzuzeigende Minute .EQU Sekunde, 2 ; anzuzeigende Sekunde @@ -83,7 +82,7 @@ ldi r16,0x56 mov Sekunde,r16 - ldi nTicsL,100 + ldi nTics,100 sei @@ -94,8 +93,8 @@ main_loop: low_high_Funkflanke: - mov r16,TicsL - sub r16,lHTicsL ; die gemessene "low" Zeit ist der Abstand der letzten lh-Flanke + mov r16,Tics + sub r16,lHTics ; die gemessene "low" Zeit ist der Abstand der letzten lh-Flanke cpi r16,205 brcc Funkfehler ; "low" >= 2050ms -- hierzu ist *keine* Flanke vonnoeten @@ -103,7 +102,7 @@ low_high_Funkflanke: rjmp nach_Funkflanke sbr Status,0x01 - mov lHTicsL,TicsL + mov lHTics,Tics cpi r16,95 brcs Funkfehler ; "low" < 950ms @@ -118,8 +117,8 @@ low_high_Funkflanke: high_low_Funkflanke: - mov r16,TicsL - sub r16,lHTicsL ; 10 vs. 20 ( = 100ms vs. 200ms) + mov r16,Tics + sub r16,lHTics ; 10 vs. 20 ( = 100ms vs. 200ms) cpi r16,26 brcc Funkfehler ; high > 250ms -- hierzu ist *keine* Flanke vonnoeten @@ -166,22 +165,22 @@ neue_Funksekunde: sbrs Status,2 rjmp nach_Funkflanke ; War die letzte Minute per Funk ok? - mov r16,nTicsL - sub r16,TicsL ; wie viele TicsL bis zur naechsten Sekunde (nach Quarz) - mov nTicsL,TicsL ; wir setzen es auf "jetzt" + mov r16,nTics + sub r16,Tics ; wie viele Tics bis zur naechsten Sekunde (nach Quarz) + mov nTics,Tics ; wir setzen es auf "jetzt" cpi r16,50 ; wurde die Sekunde durch den Quarz schon gezaehlt? brcs nach_Funkflanke ; branch, wenn "noch nicht gezaehlt" - subi nTicsL,(256-100) ; wir setzen es jetz auf "in 100 TicsL" + subi nTics,(256-100) ; wir setzen es jetz auf "in 100 Tics" nach_Funkflanke: - mov r16,nTicsL - sub r16,TicsL + mov r16,nTics + sub r16,Tics brmi main_loop neue_Sekunde: - subi nTicsL,(256-100) + subi nTics,(256-100) ; naechste Sekunde 100 Tics nach der aktuellen sbis PIND,2 rjmp neue_Stunde @@ -250,8 +249,8 @@ neue_Funkminute: sbr Status,0x04 ; die empfangene Minute ist ok - mov nTicsL,TicsL - subi nTicsL,(256-100) ; die naechste Sekunde startet in genau 100 TicsL + mov nTics,Tics + subi nTics,(256-100) ; die naechste Sekunde startet in genau 100 Tics neue_Funkminute_Ende: rjmp Funk_initialisieren @@ -300,9 +299,7 @@ TIMER1COMPA: mov r16,Sekunde ldi Spalte,0x10 - inc TicsL - brne anzeigen - inc TicsH + inc Tics anzeigen: com r16 sbrs Spalte,5 |