Blame view

principal.txt 1.3 KB
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
1
2
3
4
5
6
7
8
9
  ; Équivalences
  
  .equ PINA = 0x00
  .equ DDRA = 0x01
  .equ PORTA = 0x02
  .equ PINB = 0x03
  .equ DDRB = 0x04
  .equ PORTB = 0x05
  
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
10
11
12
13
14
  .equ ADMUX = 0x7C
  .equ ADCSRB = 0x7B
  .equ ADCSRA = 0x7A
  .equ ADCH = 0x79
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
15
16
17
18
19
20
21
22
23
24
25
26
27
  .equ RAMEND = 0x21FF
  .equ SPH = 0x3E
  .equ SPL = 0x3D
  
  ; Nommage des registres utilisés
  
  .def etat = r19
  
  ; Vecteurs d'interruptions
  
  .org 0x000 ; Vecteur RESET
      jmp debut
  
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
28
29
30
  .org 0x003A ; ADC
      jmp adc
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
31
32
33
34
35
36
37
38
39
  
  ; Tableaux de la mémoire du programme
  
  .org 0x0080
  
  ; Programme
  
  debut:
  ; Configuration des composants
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
40
41
42
      ADMUX <- 0b01110000
      ADCSRB <- 0b00001011
      ADCSRA <- 0b10011101 ; TODO Auto-trigger ?
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  ; 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
80
      ; TODO Lire ADCH
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
81
82
83
84
85
86
87
      ; 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