Commit f121392ccab0dff5b5751ec0f085d9ac118f05ac

Authored by Geoffrey PREUD'HOMME
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  
... ...