.equ PINA = 0x00 ; définition des adresses des ports .equ DDRA = 0x01 .equ PORTA = 0x02 .equ PINC = 0x06 .equ DDRC = 0x07 .equ PORTC = 0x08 .equ SREG = 0x3F .equ EIMSK = 0x3D .equ EICRA = 0x69 .equ EICRB = 0x6A .equ RAMEND = 0x21FF .equ SPH = 0x3E ; initialisation de la pile .equ SPL = 0x3D .org 0x000 ; Vecteur RESET jmp debut .org 0x0002 ; INT0 jmp valider .org 0x0004 ; INT1 jmp retour .org 0x0006 ; INT2 jmp incrementer .org 0x0008 ; INT3 jmp decrementer .org 0x0080 debut: DDRA@IO <- 0xFF DDRC@IO <- 0xFF PORTA@IO <- 0xFF PORTC@IO <- 0xFF EIMSK <- 0b00001111 EICRA <- 0b11111111 ; TODO Oscillations annulables ? EICRB <- 0b00000000 SEI boucle: sleep saut boucle valider: PORTC@IO <- 0x00 reti retour: PORTC@IO <- 0xFF reti incrementer: r20 <- PINC@IO inc r20 PORTC@IO <- r20 reti decrementer: r20 <- PINC@IO dec r20 PORTC@IO <- r20 reti tempo: ldi r24,8 tempoA: subi r22,1 sbci r23,0 sbci r24,0 brcc tempoA ret