summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Binaeruhr.asm43
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