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,6 +12,10 @@ | ||
12 | 12 | ||
13 | .equ WDTCSR = 0x60 | 13 | .equ WDTCSR = 0x60 |
14 | 14 | ||
15 | +.equ TTCR0A = 0x24 | ||
16 | +.equ TTCR0B = 0x25 | ||
17 | +.equ TMSK0 = 0x6e | ||
18 | + | ||
15 | .equ EIMSK = 0x3D | 19 | .equ EIMSK = 0x3D |
16 | .equ EICRA = 0x69 | 20 | .equ EICRA = 0x69 |
17 | .equ EICRB = 0x6A | 21 | .equ EICRB = 0x6A |
@@ -26,17 +30,18 @@ | @@ -26,17 +30,18 @@ | ||
26 | 30 | ||
27 | ; Nommage des registres utilisés | 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 | ; Vecteurs d'interruptions | 46 | ; Vecteurs d'interruptions |
42 | 47 | ||
@@ -58,6 +63,9 @@ | @@ -58,6 +63,9 @@ | ||
58 | .org 0x0018 ; Watchdog | 63 | .org 0x0018 ; Watchdog |
59 | jmp watchdog | 64 | jmp watchdog |
60 | 65 | ||
66 | +.org 0x002E ; Timer | ||
67 | + jmp timer | ||
68 | + | ||
61 | .org 0x003A ; ADC | 69 | .org 0x003A ; ADC |
62 | jmp adc | 70 | jmp adc |
63 | 71 | ||
@@ -80,6 +88,11 @@ debut: | @@ -80,6 +88,11 @@ debut: | ||
80 | WDTCSR <- 0b00010000 | 88 | WDTCSR <- 0b00010000 |
81 | WDTCSR <- 0b01000111 | 89 | WDTCSR <- 0b01000111 |
82 | 90 | ||
91 | + ; Timer | ||
92 | + TTCR0A@IO <- 0b00000001 | ||
93 | + TTCR0B@IO <- 0b00000011 | ||
94 | + TMSK0@IO <- 0b00000001 | ||
95 | + | ||
83 | ; Interruptions externes | 96 | ; Interruptions externes |
84 | EIMSK <- 0b00001111 | 97 | EIMSK <- 0b00001111 |
85 | EICRA <- 0b11111111 ; TODO Oscillations annulables ? | 98 | EICRA <- 0b11111111 ; TODO Oscillations annulables ? |
@@ -89,8 +102,17 @@ debut: | @@ -89,8 +102,17 @@ debut: | ||
89 | ADMUX <- 0b01110000 | 102 | ADMUX <- 0b01110000 |
90 | ADCSRB <- 0b00001011 | 103 | ADCSRB <- 0b00001011 |
91 | ADCSRA <- 0b10011101 ; TODO Auto-trigger ? | 104 | ADCSRA <- 0b10011101 ; TODO Auto-trigger ? |
105 | + | ||
92 | sei | 106 | sei |
107 | + | ||
93 | ; Initialisation des valeurs | 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 | boucle: | 117 | boucle: |
96 | sleep | 118 | sleep |
@@ -452,5 +474,12 @@ eteindreChaudiere: | @@ -452,5 +474,12 @@ eteindreChaudiere: | ||
452 | ; Interruption timer | 474 | ; Interruption timer |
453 | timer: | 475 | timer: |
454 | ; Affiche le digit suivant sur l'afficheur 7seg | 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 | reti | 484 | reti |
456 | 485 |