Commit b92623dab2d3e68d555ad33a4f5422800e1d0c69

Authored by Taky Djeraba
2 parents 58504c72 f121392c

Merge branch 'master' of archives.plil.fr:gbontoux/s6-mp-tutorat

Showing 1 changed file with 40 additions and 11 deletions   Show diff stats
@@ -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