diff --git a/principal.txt b/principal.txt index dfb6b70..078965f 100644 --- a/principal.txt +++ b/principal.txt @@ -217,11 +217,11 @@ afficherDi: ; Logique agir1s: - ; Met à jour les registres de temps, active agir10s ou agirHeur si nécessaire + ; Met à jour les registres de temps, active agir10s ou agirHeure si nécessaire inc t0 - si t0%5 != 0 saut ret ; Continue si on est sur un multiple de 10 secondes + si t0%10 != 0 saut ret ; Continue si on est sur un multiple de 10 secondes call agir10s - si t0 < 30 saut ret ; Continue si on est sur un multiple de 60 secondes + si t0 < 60 saut ret ; Continue si on est sur un multiple de 60 secondes t0 <- 0 inc t1 si t1 < 60 saut ret ; Continue si on est sur un multiple de 60 minutes @@ -232,12 +232,13 @@ agir1s: t2 <- t2 & 0b11100000 ; Heure à minuit si t2 >= 0b11100000 alors t2 <- 0b00000000 ; Si on est dimanche soir, on revient à lundi matin agir1sHeur: - call agirHeur + call agirHeure ret agir10s: ; Déclenche une conversion ADC ADCSRA <- 0b11011101 + ; Switche l'état de veille si veille il y a si etat = 0 saut a10sVeilleTemp si etat = 1 saut a10sVeilleHeur ret @@ -251,9 +252,11 @@ a10sVeilleTemp: call afficherTemperature ret -agirHeur: +agirHeure: ; Recharge la température de référence - ; TODO + temp <- (t2 / 0b00100000) * 24 + compteur + if assocs[temp] = 0x00 alors reference <- tempJour + if assocs[temp] = 0x01 alors reference <- tempNuit ret ; Recadrage @@ -343,6 +346,7 @@ etatParaJoursC: etatParaJoursS: ; Switch temp <- (etat - 10) * 24 + compteur assocs[temp] <- (assocs[temp] + 1) & 0b00000001 + call agirHeure ; Au cas où on change l'heure en cours jmp etatParaJoursU etatMenuTJour: @@ -363,6 +367,7 @@ etatParaTJourU: etatParaTJourC: call boundTemperature tempJour <- compteur + call agirHeure ; Au cas où on change le mode en cours jmp etatParaTJourU etatMenuTNuit: @@ -383,6 +388,7 @@ etatParaTNuitU: etatParaTNuitC: call boundTemperature tempNuit <- compteur + call agirHeure ; Au cas où on change le mode en cours jmp etatParaTNuitU etatMenuHorloge: @@ -419,13 +425,13 @@ etatMenuHMinu: etatParaHJour: etat <- 25 - compteur <- 0 ; TODO Récupérer le jour + compteur <- t0 / 0b00100000 call afficherJour reti etatParaHJourC: call boundJour - ; TODO Sauvegarde + t0 <- (compteur * 0b00100000) + (t0 & 0b00011111) call afficherJour reti @@ -506,10 +512,10 @@ valider: si etat = 20 saut etatMenuTNuit si etat = 21 saut etatMenuHJour si etat = 22 saut etatParaHJour - si etat = 23 saut etatMenuHJour - si etat = 24 saut etatParaHHeur - si etat = 25 saut etatMenuHHeur - si etat = 26 saut etatParaHMinu + si etat = 23 saut etatParaHHeur + si etat = 24 saut etatParaHMinu + si etat = 25 saut etatMenuHJour + si etat = 26 saut etatMenuHHeur si etat = 27 saut etatMenuHMinu reti ; Ne devrait pas arriver, mais permet d'éviter les dégâts -- libgit2 0.21.2