Blame view

principal.txt 1.71 KB
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
1
2
3
4
5
  ; Équivalences
  
  .equ PINA = 0x00
  .equ DDRA = 0x01
  .equ PORTA = 0x02
733c078a   Geoffrey PREUD'HOMME   Configuration des...
6
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
7
8
9
10
  .equ PINB = 0x03
  .equ DDRB = 0x04
  .equ PORTB = 0x05
  
733c078a   Geoffrey PREUD'HOMME   Configuration des...
11
12
13
14
15
16
  .equ SREG = 0x3F
  
  .equ EIMSK = 0x3D
  .equ EICRA = 0x69
  .equ EICRB = 0x6A
  
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
17
18
19
20
21
  .equ ADMUX = 0x7C
  .equ ADCSRB = 0x7B
  .equ ADCSRA = 0x7A
  .equ ADCH = 0x79
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
22
23
24
25
26
27
28
  .equ RAMEND = 0x21FF
  .equ SPH = 0x3E
  .equ SPL = 0x3D
  
  ; Nommage des registres utilisés
  
  .def etat = r19
733c078a   Geoffrey PREUD'HOMME   Configuration des...
29
  .def reference = r20
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
30
31
32
33
34
35
  
  ; Vecteurs d'interruptions
  
  .org 0x000 ; Vecteur RESET
      jmp debut
  
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
36
37
38
  .org 0x003A ; ADC
      jmp adc
  
733c078a   Geoffrey PREUD'HOMME   Configuration des...
39
40
41
42
43
44
45
46
47
48
49
  .org 0x0002 ; INT0
      jmp valider
  
  .org 0x0004 ; INT1
      jmp retour
  
  .org 0x0006 ; INT2
      jmp incrementer
  
  .org 0x0008 ; INT3
      jmp decrementer
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
50
51
52
53
54
55
56
57
58
  
  ; Tableaux de la mémoire du programme
  
  .org 0x0080
  
  ; Programme
  
  debut:
  ; Configuration des composants
733c078a   Geoffrey PREUD'HOMME   Configuration des...
59
60
61
62
63
64
65
66
      SREG <- 0b10000000
  
      ; Interruptions externes
      EIMSK <- 0b00001111
      EICRA <- 0b11111111 ; TODO Oscillations annulables ?
      EICRB <- 0b00000000
  
      ; ADC
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
67
68
69
      ADMUX <- 0b01110000
      ADCSRB <- 0b00001011
      ADCSRA <- 0b10011101 ; TODO Auto-trigger ?
733c078a   Geoffrey PREUD'HOMME   Configuration des...
70
      sei
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
  ; Initialisation des valeurs
  
  boucle:
      sleep
      jmp boucle
  
  ; Fonctions
  agir10s:
      ; Initialise une lecture ADC
      ; Met à jour l'état de veille (si on est en état veille)
      ret
  
  agirHeure:
      ; Recharge la température de référence
      ret
  
  ; Interruption boutons
  
  incrementer:
      reti
  
  decrementer:
      reti
  
  valider:
      reti
  
  retour:
      reti
  
  ; Interruption Watchdog
  watchdog:
      ; Met à jour les registres de temps, active agir10s ou agirHeure si nécessaire
      reti
  
  ; Interruption ADC
  adc:
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
108
      ; TODO Lire ADCH
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
109
110
111
112
113
114
115
      ; Active ou désactive la chaudière selon la température lue et celle de référence
      reti
  
  ; Interruption timer
  timer:
      ; Affiche le digit suivant sur l'afficheur 7seg
      reti