Departament de Microelectrònica i Sistemes Electrònics
AVR i FONAMENTS DE COMPUTADORS
Enginyeria en Informàtica (ETSE)
exemples - 1ª rutina de retard
.INCLUDE "m8def.inc"
.DEF n1 = R16
.DEF n2 = R17
.ORG 0x0
rjmp inici ; rutina d'inici del programa
inici: ldi n1,LOW(RAMEND)
out SPL,n1
ldi n1,HIGH(RAMEND)
out SPH,n1
sbi DDRB,0 ; inicialitzar PORTB.0
ldi n1, 40 ; (256-216)
ldi n2, 0
main: cbi PORTB,0
rcall wait
sbi PORTB,0
rcall wait
rjmp main
wait:ldi n2, 0
bucle2:ldi n1, 40
bucle1:inc r16
brne bucle1
inc r17
brne bucle2
ret
; FREQ 3Hz AMB DOBLE ANIDAMENT
; Joan Oliver
; Universitat Autònoma de Barcelona
; Port de sortida PORTD.0
; declaració de registres
; salt a inici de programa
; -------INICI PROGRAMA ---------------------------
; setup del stack
; posar PORTB0 com a sortida
; inicialitzar PORTB.0
;-------PROGRAMA PRINCIPAL--------------------------------------------
; sortida a 0
; crida retard
; sortida a 1
; crida retard
; tornar a programa principal
;-------ESPERA--------------------------------------------------------
; bucle de retard