diff options
author | Stefanie Eckner <stefanie@eckner.net> | 2020-11-08 20:39:18 +0100 |
---|---|---|
committer | Stefanie Eckner <stefanie@eckner.net> | 2020-11-08 20:39:18 +0100 |
commit | e5ad94b6e2bae07046104f98e01fbc6281512528 (patch) | |
tree | 802c0b5939fd4dad1e6b248f2aa5654501e9b1c6 | |
parent | 40c51f5b8d982a812ca338847818f5ce9de4e8c4 (diff) | |
download | Uhr-e5ad94b6e2bae07046104f98e01fbc6281512528.tar.xz |
Binaeruhr.asm: Sekunde ausrichten, wenn Funk ok war
-rw-r--r-- | Binaeruhr.asm | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/Binaeruhr.asm b/Binaeruhr.asm index 61d0f97..9aec076 100644 --- a/Binaeruhr.asm +++ b/Binaeruhr.asm @@ -163,7 +163,15 @@ Funk_initialisieren: neue_Funksekunde: -; TODO: Sekunde ausrichten, wenn Funk ok war + sbrs Status,2 + rjmp nach_Funkflanke + + mov r16,nTicsL + sub r16,TicsL ; wie viele TicsL bis zur nächsten Sekunde (nach Quarz) + mov nTicsL,TicsL ; wir setzen es auf "jetzt" + cpi r16,50 ; wurde die Sekunde durch den Quarz schon gezählt? + brcs nach_Funkflanke ; branch, wenn "noch nicht gezählt" + subi nTicsL,(256-100) ; wir setzen es jetz auf "in 100 TicsL" nach_Funkflanke: @@ -174,12 +182,12 @@ nach_Funkflanke: mov r17,TicsL subi r17,0x80 cp r16,r17 - brcc main_loop + brcs neue_Sekunde + rjmp main_loop neue_Sekunde: - ldi r16,100 - add nTicsL,r16 + subi nTicsL,(256-100) sbis PIND,2 rjmp neue_Stunde @@ -228,11 +236,11 @@ neue_Funkminute: mov r18,r16 rcall checksum - brts Funk_initialisieren + brts neue_Funkminute_Ende mov r18,r17 rcall checksum - brts Funk_initialisieren + brts neue_Funkminute_Ende mov r18,r16 cbr r18,0x80 @@ -248,6 +256,7 @@ neue_Funkminute: sbr Status,0x04 ; die empfangene Minute ist ok +neue_Funkminute_Ende: rjmp Funk_initialisieren neue_Minute: |