Commit f121392ccab0dff5b5751ec0f085d9ac118f05ac
1 parent
e44a58af
Récupération code timer vers principal
Showing
1 changed file
with
40 additions
and
11 deletions
Show diff stats
principal.txt
... | ... | @@ -12,6 +12,10 @@ |
12 | 12 | |
13 | 13 | .equ WDTCSR = 0x60 |
14 | 14 | |
15 | +.equ TTCR0A = 0x24 | |
16 | +.equ TTCR0B = 0x25 | |
17 | +.equ TMSK0 = 0x6e | |
18 | + | |
15 | 19 | .equ EIMSK = 0x3D |
16 | 20 | .equ EICRA = 0x69 |
17 | 21 | .equ EICRB = 0x6A |
... | ... | @@ -26,17 +30,18 @@ |
26 | 30 | |
27 | 31 | ; Nommage des registres utilisés |
28 | 32 | |
29 | -.def etat = r19 | |
30 | -.def reference = r20 | |
31 | -.def d3 = r20 ; Digit 3 (tout à gauche) | |
32 | -.def d2 = r20 ; Digit 2 | |
33 | -.def d1 = r20 ; Digit 1 | |
34 | -.def d0 = r20 ; Digit 0 (tout à droite) | |
35 | -.def compteur = r20 ; Utilisé pour modifier des valeurs dans le menu | |
36 | -.def temp = r20 ; Utilisé pour différentes choses mais très brièvement | |
37 | -.def t2 = r20 ; Jour (3 premiers bits) et Heure (5 derniers bits) | |
38 | -.def t1 = r20 ; Minutes | |
39 | -.def t0 = r20 ; Secondes / 2 | |
33 | +.def etat = r0 | |
34 | +.def reference = r1 ; Température de référence actuelle | |
35 | +.def d3 = r2 ; Digit 3 (tout à gauche) | |
36 | +.def d2 = r3 ; Digit 2 | |
37 | +.def d1 = r4 ; Digit 1 | |
38 | +.def d0 = r5 ; Digit 0 (tout à droite) | |
39 | +.def compteur = r6 ; Utilisé pour modifier des valeurs dans le menu | |
40 | +.def temp = r7 ; Utilisé pour différentes choses mais très brièvement | |
41 | +.def t2 = r8 ; Jour (3 premiers bits) et Heure (5 derniers bits) | |
42 | +.def t1 = r9 ; Minutes | |
43 | +.def t0 = r10 ; Secondes / 2 | |
44 | +.def afficheur = r11 ; Digit en cours d'affichage | |
40 | 45 | |
41 | 46 | ; Vecteurs d'interruptions |
42 | 47 | |
... | ... | @@ -58,6 +63,9 @@ |
58 | 63 | .org 0x0018 ; Watchdog |
59 | 64 | jmp watchdog |
60 | 65 | |
66 | +.org 0x002E ; Timer | |
67 | + jmp timer | |
68 | + | |
61 | 69 | .org 0x003A ; ADC |
62 | 70 | jmp adc |
63 | 71 | |
... | ... | @@ -84,6 +92,11 @@ debut: |
84 | 92 | WDTCSR <- 0b00010000 |
85 | 93 | WDTCSR <- 0b01000111 |
86 | 94 | |
95 | + ; Timer | |
96 | + TTCR0A@IO <- 0b00000001 | |
97 | + TTCR0B@IO <- 0b00000011 | |
98 | + TMSK0@IO <- 0b00000001 | |
99 | + | |
87 | 100 | ; Interruptions externes |
88 | 101 | EIMSK <- 0b00001111 |
89 | 102 | EICRA <- 0b11111111 ; TODO Oscillations annulables ? |
... | ... | @@ -93,8 +106,17 @@ debut: |
93 | 106 | ADMUX <- 0b01110000 |
94 | 107 | ADCSRB <- 0b00001011 |
95 | 108 | ADCSRA <- 0b10011101 ; TODO Auto-trigger ? |
109 | + | |
96 | 110 | sei |
111 | + | |
97 | 112 | ; Initialisation des valeurs |
113 | + t2 <- 0b01001100 ; Mercredi 12h34'56 | |
114 | + t1 <- 34 | |
115 | + t0 <- 28 | |
116 | + | |
117 | + afficheur <- 0b00000001 | |
118 | + etat <- 0 | |
119 | + call afficherHorloge | |
98 | 120 | |
99 | 121 | boucle: |
100 | 122 | sleep |
... | ... | @@ -435,5 +457,12 @@ eteindreChaudiere: |
435 | 457 | ; Interruption timer |
436 | 458 | timer: |
437 | 459 | ; Affiche le digit suivant sur l'afficheur 7seg |
460 | + lsl afficheur | |
461 | + si afficheur > 0b00001000 alors selafficheur <- 0b00000001 | |
462 | + PORTC@IO <- 0xff - afficheur | |
463 | + si afficheur = 0b00000001 alors PORTA@IO <- d0 | |
464 | + si afficheur = 0b00000010 alors PORTA@IO <- d1 | |
465 | + si afficheur = 0b00000100 alors PORTA@IO <- d2 | |
466 | + si afficheur = 0b00001000 alors PORTA@IO <- d3 | |
438 | 467 | reti |
439 | 468 | ... | ... |