Hola a todos, estoy empezando con los micros avr en ensamblador, no puedo hacer que el siguiente código funcione, el pwm se genera, pero la interrupción no va al vector especificado, ya intenté con el modo 14 y 15 fast pwm, no sé qué estoy haciendo mal,
gracias de antemano.
gracias de antemano.
Código:
;====================================================================
; Main.asm file generated by New Project wizard
;
; Created: ju. dic. 11 2025
; Processor: ATmega328P
; Compiler: AVRASM (Proteus)
;====================================================================
;====================================================================
; DEFINITIONS
;====================================================================
;====================================================================
; VARIABLES
;====================================================================
;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================
; Reset Vector
.org 0x0000
jmp Start
.org 0x0016
jmp rsi_0
;.org 0x000
;rjmp
;.org 0x000
;====================================================================
; CODE SEGMENT
;====================================================================
Start:
ldi r16, 0b00000011 ;configura pb0, pb1 como salida
out ddrb, r16
ldi r17, 0b10000010 ;0x82 ;configura pb1 como salida no invertida
sts tccr1a, r17 ;preescaler a 1 o sin preescaler
ldi r18, 0b00011001 ;modo de pwm 14 fast pwm
sts tccr1b, r18
ldi r19, 0x04 ;frecuencia de pwm 20khz frcuencia de ic 20Mhz
sts icr1h, r19
ldi r20, 0xe2
sts icr1l, r20 ;ciclo de trabajo 50%
ldi r21, 0x02
sts ocr1ah, r21
ldi r22, 0x71 ;0x96
sts ocr1al, r22
ldi r16, 0x0ff ;inicia puntero de pila
out spl, r16
ldi r16, 0x008
out sph, r16
ldi r23, 0x01 ;abilita interrupcion coincidencia de comparacion
sts timsk1, r23 ; de salida
cbi tifr1, 1 ;borra flag de interrupcion
sei ;abilita interrupciones global
Loop:
nop
nop
rjmp Loop
;=============================ISR=======================================
rsi_0:
sbic pinb, 0
rjmp tm0
rjmp tm1
tm0:
nop
cbi Portb, 0
tm1:
nop
sbi Portb, 0
cbi tifr1,1
reti
;====================================================================
Última edición por un moderador: