principal.txt 1.3 KB
; É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