Commit b92623dab2d3e68d555ad33a4f5422800e1d0c69
Merge branch 'master' of archives.plil.fr:gbontoux/s6-mp-tutorat
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 | |
... | ... | @@ -80,6 +88,11 @@ debut: |
80 | 88 | WDTCSR <- 0b00010000 |
81 | 89 | WDTCSR <- 0b01000111 |
82 | 90 | |
91 | + ; Timer | |
92 | + TTCR0A@IO <- 0b00000001 | |
93 | + TTCR0B@IO <- 0b00000011 | |
94 | + TMSK0@IO <- 0b00000001 | |
95 | + | |
83 | 96 | ; Interruptions externes |
84 | 97 | EIMSK <- 0b00001111 |
85 | 98 | EICRA <- 0b11111111 ; TODO Oscillations annulables ? |
... | ... | @@ -89,8 +102,17 @@ debut: |
89 | 102 | ADMUX <- 0b01110000 |
90 | 103 | ADCSRB <- 0b00001011 |
91 | 104 | ADCSRA <- 0b10011101 ; TODO Auto-trigger ? |
105 | + | |
92 | 106 | sei |
107 | + | |
93 | 108 | ; Initialisation des valeurs |
109 | + t2 <- 0b01001100 ; Mercredi 12h34'56 | |
110 | + t1 <- 34 | |
111 | + t0 <- 28 | |
112 | + | |
113 | + afficheur <- 0b00000001 | |
114 | + etat <- 0 | |
115 | + call afficherHorloge | |
94 | 116 | |
95 | 117 | boucle: |
96 | 118 | sleep |
... | ... | @@ -452,5 +474,12 @@ eteindreChaudiere: |
452 | 474 | ; Interruption timer |
453 | 475 | timer: |
454 | 476 | ; Affiche le digit suivant sur l'afficheur 7seg |
477 | + lsl afficheur | |
478 | + si afficheur > 0b00001000 alors selafficheur <- 0b00000001 | |
479 | + PORTC@IO <- 0xff - afficheur | |
480 | + si afficheur = 0b00000001 alors PORTA@IO <- d0 | |
481 | + si afficheur = 0b00000010 alors PORTA@IO <- d1 | |
482 | + si afficheur = 0b00000100 alors PORTA@IO <- d2 | |
483 | + si afficheur = 0b00001000 alors PORTA@IO <- d3 | |
455 | 484 | reti |
456 | 485 | ... | ... |