TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: GARAY.OMAR en 28 de Febrero de 2013, 02:34:03
-
HOLA, TENGO UN PROBLEMA CON EL PIC 12F683 EL PROGRAMA ES ALGO MUY SENCILLO, SOLO ES HACER PARPADEAR UN LED PERO NO ME PERMITE HACERLO, EL PROBLEMA ESTA EN QUE EN CUANTO CONECTO EL MICRO, EL LED SE ENCIENDE PERO JAMAS PARPADEA, NO SE A QUE SE DEBA.
ADJUNTO EL CODIGO HABER SI ALGUIEN ME HICIERA EL FAVOR DE CHECARLO Y VER SI COMETI ALGUN ERROR, YA QUE LLEVO DIAS Y DIAS Y NO ENCUENTRO QUE HAGO MAL.
#include<P12F683.inc>
CBLOCK 00H
d1
d2
d3
ENDC
ORG 00H
goto inicio
;================SUBRUTINA DE RETARDO================
Delay
;499994 cycles
movlw 0x03
movwf d1
movlw 0x18
movwf d2
movlw 0x02
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0
;6 cycles
goto $+1
goto $+1
goto $+1
return
;================CONFIGURACION DE PUERTOS===============
inicio
movlw b'00000111'
movwf CMCON0
banksel ANSEL
clrf ANSEL
clrf TRISIO
banksel GPIO
clrf GPIO
;================ENCENDIDO DEL LED======================
encendido
banksel GPIO
bsf GPIO,2
call Delay
call Delay
call Delay
call Delay
;================APAGADO DEL LED========================
banksel GPIO
bcf GPIO,2
call Delay
call Delay
call Delay
call Delay
goto encendido
END
DE ANTE MANO MIL GRACIAS POR SU AYUDA Y TIEMPO.
-
Te pongo la misma respuesta que en el otro tema.
al inicio del progragrama antes del include, ¿no te falta la declaracion del pic usado con la directiva list= Pxxxxxxx(el que sea).
¿tampoco veo la declaracion de los fuses..
Puedes ver ejemplos de como confecionar el programa aqui: http://www.todopic.com.ar/foros/index.php?topic=12345.msg69623#msg69623
Un par de cosas mas:
- Por favor no escribas todo en mayusculas.
- Lee las reglas del foro
- Tampoco repitas los mensajes ya que has puesto la misma pregunta en 2 sitios y no por ello se te responderá mas rapido. eso origina perdida de tiempo a los que lemos los post.
-
Ok disculpas por lo de las mayúsculas, los fuses los pongo desde el MPLAB ya que en configuración me da la opción y después lo exporto y ya me funcionan, yo he programado mucho con el PIC 18F4550 y nunca había tenido problemas hasta que entre en este PIC, y nunca había utilizado esa declaración que me comentas, lo voy a hacer. Por otro lado no sentí que haya posteado el mismo tema ya que son 2 programas distintos, pero para la próxima no lo volveré a hacer.
Gracias por tus comentarios.
-
El problema esta en la temporizacion, mejor aun en los registros d1,d2,d3, que los tienes en 0x00,0x01,0x02, si le pones aqui:
CBLOCK 00H
Esto, creo que ya te va.
CBLOCK 20H
Fijate era solo un numero, pero cuando cargaba d3, lo cargaba en PCL (contador de programa) y estaba cargando los registros siempre ni siquiera empazaba a hacer Delay_0.
-
Problema resuelto, oye y como puedo checar ese dato en el datasheet del pic, es en el apartado de "Memory Organization" pero como se en que parte va el CBLOCK y el ORG. Te lo agradecería por si alguna otra persona desea saber, podrias adjuntar alguna imagen para que lo veamos??
Gracias por toda tu ayuda.