; Équivalences .equ PINA = 0x00 .equ DDRA = 0x01 .equ PORTA = 0x02 .equ PINB = 0x03 .equ DDRB = 0x04 .equ PORTB = 0x05 .equ ADMUX = 0x7C .equ ADCSRB = 0x7B .equ ADCSRA = 0x7A .equ ADCH = 0x79 .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 .org 0x003A ; ADC jmp adc ; Tableaux de la mémoire du programme .org 0x0080 ; Programme debut: ; Configuration des composants ADMUX <- 0b01110000 ADCSRB <- 0b00001011 ADCSRA <- 0b10011101 ; TODO Auto-trigger ? ; 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: ; TODO Lire ADCH ; 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