Estoy haciendo un proyecto utilizando un ATmega 328P, y este código solo es un fragmento, tengo problemas al poner en alto otro pin.
el problema es que yo no le encuentro el error por ningún lado, y por alguna extraña razón, al simular en Isis proteus solo este fragmento, si funciona:
y cuando le agrego el encender otro pin , es cuando la simulación ya no sirve.
Espero que hayan entendido cual es mi problema, les adjunto el Asm y la simulación de proteus.
Saludos
Código:
.nolist
.include "m328Pdef.inc"
.list
.org 0x0000
clr r16
out ddrc, r16;Puerto B como entradas
ser r16
out ddrd, r16;Puerto D como salidas
clr r16
out ddrb, r16;Puerto B como entradas
rjmp Sensor1_color
;>>>Etapa Estuchadora<<<
Sensor1_color:
ldi r16, 0; Comfiguramos el pin analogico de entrada
sts ADMUX, r16
ldi r16, 0b11101101; Activamos el conversor
sts ADCSRA, r16
lds r16, ADCL;Guardamos el dato de la lectura
lds r17, ADCH
nop
nop
nop
nop
nop
cpi r17,0b00000011
breq Estuchador
ldi r16,0b00000001; Se enciende banda
out PortD, r16
rjmp Sensor1_color
Estuchador:
ldi r16,0b0001000; Se enciende piston empaquetador
out PortD, r16
ldi R17, $63
WGLOOP4: ldi R18, $64
WGLOOP5: dec R18
brne WGLOOP5
dec R17
brne WGLOOP4
nop
ldi r16,0b00000000; Se apaga piston empaquetador
out PortD, r16
ldi R17, $63
WGLOOP6: ldi R18, $64
WGLOOP7: dec R18
brne WGLOOP7
dec R17
brne WGLOOP6
nop
ldi r16, 0b00001000; Se enciende piston despachador de empaque
out PortD, r16
ldi R17, $63
WGLOOP8: ldi R18, $64
WGLOOP9: dec R18
brne WGLOOP8
dec R17
brne WGLOOP9
nop
ldi r16,0b00000000; Se apaga piston despachador
out PortD, r16
ldi R17, $63
WGLOOP10: ldi R18, $64
WGLOOP11: dec R18
brne WGLOOP10
dec R17
brne WGLOOP11
nop
rjmp Sensor1_color
el problema es que yo no le encuentro el error por ningún lado, y por alguna extraña razón, al simular en Isis proteus solo este fragmento, si funciona:
Código:
Sensor1_color:
ldi r16, 0; Comfiguramos el pin analogico de entrada
sts ADMUX, r16
ldi r16, 0b11101101; Activamos el conversor
sts ADCSRA, r16
lds r16, ADCL;Guardamos el dato de la lectura
lds r17, ADCH
nop
nop
nop
nop
nop
cpi r17,0b00000011
breq Estuchador
ldi r16,0b00000001; Se enciende banda
out PortD, r16
rjmp Sensor1_color
Estuchador:
ldi r16,0b0001000; Se enciende piston empaquetador
out PortD, r16
ldi R17, $63
WGLOOP4: ldi R18, $64
WGLOOP5: dec R18
brne WGLOOP5
dec R17
brne WGLOOP4
nop
ldi r16,0b00000000; Se apaga piston empaquetador
out PortD, r16
ldi R17, $63
WGLOOP6: ldi R18, $64
WGLOOP7: dec R18
brne WGLOOP7
dec R17
brne WGLOOP6
nop
rjmp Sensor1_color
y cuando le agrego el encender otro pin , es cuando la simulación ya no sirve.
Espero que hayan entendido cual es mi problema, les adjunto el Asm y la simulación de proteus.
Saludos
Adjuntos
Última edición: