Autor Tema: Que hago mal? (12f675)  (Leído 4468 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Que hago mal? (12f675)
« en: 02 de Septiembre de 2008, 11:23:47 »
Estoy empezando a programar en asm con el 12f675. Simplemente quiero ir prendiendo y apagando un led, entonces hice esto:

Código: [Seleccionar]
list p=12f675
#include <p12f675.inc>

PDel0 equ 0X20
PDel1 equ 0X21


reset org 0x00
  goto inicio

inicio
bsf STATUS, 5 ;Muevo al banco 1
clrc GPIO
movlw 0x07
movwf CMCON
bcf STATUS, 5; Vuelvo al banco 0.
clrf ANSEL
movlw 0b00000000
movwf TRISIO



main
bsf GPIO, 1
call demora
bcf GPIO, 1
call demora
goto main


demora  movlw     .239      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .232      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3  clrwdt              ; 1 ciclo delay
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL4  goto PDelL5         ; 2 ciclos delay
PDelL5  goto PDelL6         ; 2 ciclos delay
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.

end

Cuando lo pongo en el proteus, no pasa nada. El led se mantiene apagado....


ps: No se porque no sale tabulado el codigo....

Desconectado Joshuermo

  • PIC10
  • *
  • Mensajes: 35
Re: Que hago mal? (12f675)
« Respuesta #1 en: 02 de Septiembre de 2008, 11:51:43 »
espero te sirva

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Que hago mal? (12f675)
« Respuesta #2 en: 02 de Septiembre de 2008, 12:38:24 »
No paso nada. SIgue apagado el led...

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Que hago mal? (12f675)
« Respuesta #3 en: 02 de Septiembre de 2008, 12:58:12 »
No será mucha demora? recuerda que el proteus no simula en tiempo real, es un poco mas lento, te fijaste si el pin es el correcto?
espero lo puedas solucionar!! saludos!!

Agrego: te felicito por el título, siempre hay que preguntarse a uno mismo "que hice mal" cuando las cosas fallan, muy buena actitud.
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Que hago mal? (12f675)
« Respuesta #4 en: 02 de Septiembre de 2008, 13:18:12 »
No será mucha demora? recuerda que el proteus no simula en tiempo real, es un poco mas lento, te fijaste si el pin es el correcto?
espero lo puedas solucionar!! saludos!!

Agrego: te felicito por el título, siempre hay que preguntarse a uno mismo "que hice mal" cuando las cosas fallan, muy buena actitud.

Tengo hecho el mismo codigo para el 16f84 con esa demora (500ms) y lo simula bien. En el codigo cambie el pin, puse el 0 y comiple de nuevo, conecte al pin GP0 y sigue sin prenderse.

Gracias por lo del titulo, pero es asi,,,hay algo mal que hice :D.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Que hago mal? (12f675)
« Respuesta #5 en: 02 de Septiembre de 2008, 13:43:47 »
inicio
   bsf STATUS, 5 ;Muevo al banco 1<------------ Estas en banco 1 , pero el registro CMCON esta en el 0
   clrc GPIO                   <-------------CLRF GPIO
   movlw 0x07                        <-----------
   movwf CMCON
        <-------------------   
                bcf STATUS, 5; Vuelvo al banco 0.
   clrf ANSEL                          <-------- ANSEL esta en el banco 1 , y tu lo quieres manipular desde el 0
   movlw 0b00000000
   movwf TRISIO


No veo el config_

Que tipo de oscilador usas?

Si es interno abra que calibrarlo, en proteus asegura poner el valor de oscilador



Prueba eso qu emarque arriba , sino checa en este mismo foro algunos ejemplos qu epuse de estos  uCros.

Por cierto el programa que subio Johuermo deberia ir bien!  Revisa la configuracion del proteus

Saludos!
   


« Última modificación: 02 de Septiembre de 2008, 13:50:32 por AKENAFAB »

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Que hago mal? (12f675)
« Respuesta #6 en: 03 de Septiembre de 2008, 10:53:43 »
Acomode el tema de los bancos y unos errores que tenia en las configuraciones de salidas digitales y tambien configure el oscilador interno....y quedo esto, que sigue sin andar:

Código: [Seleccionar]
list p=12f675
#include <p12f675.inc>
__CONFIG   _CP_ON & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT  ; la palabra de confguracion

PDel0 equ 0X20
PDel1 equ 0X21


reset org 0x00
  goto inicio

inicio

bcf STATUS, RP0 ;Muevo al banco 0
clrc GPIO
movlw 0x00 ;Pines 0 al 5 Digitales.
movwf CMCON
bsf STATUS, RP0; Muevo al banco 1.
clrf ANSEL
movlw 0x00 ;Todos los pins son salidas.
movwf TRISIO
movlw 0b11111100 ;Se configura el Oscilador interno para la frec. maxima (4MHz)
movwf OSCCAL
bcf STATUS, 5 ;Vuelvo al banco 0
           


main
bsf GPIO, 1
call demora
bcf GPIO, 1
call demora
goto main


demora  movlw     .239      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .232      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3  clrwdt              ; 1 ciclo delay
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL4  goto PDelL5         ; 2 ciclos delay
PDelL5  goto PDelL6         ; 2 ciclos delay
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.

end

ps: Pongo el .asm, .hex y .dsn

Desconectado Joshuermo

  • PIC10
  • *
  • Mensajes: 35
Re: Que hago mal? (12f675)
« Respuesta #7 en: 03 de Septiembre de 2008, 17:23:48 »
JEJEJE
HASTA QUE POR FIN  :lol:

ESPERO QUE TE SIRVA

__CONFIG   _CP_ON & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_ON & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT 

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Que hago mal? (12f675)
« Respuesta #8 en: 03 de Septiembre de 2008, 17:39:52 »
No pasa nada....sigue sin prenderse el led......

Desconectado Joshuermo

  • PIC10
  • *
  • Mensajes: 35
Re: Que hago mal? (12f675)
« Respuesta #9 en: 03 de Septiembre de 2008, 20:15:23 »
Disculpa es que no alcance a pegar todo.

Copia la carpeta en C:\

jose
« Última modificación: 03 de Septiembre de 2008, 20:18:03 por Joshuermo »

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Que hago mal? (12f675)
« Respuesta #10 en: 08 de Septiembre de 2008, 15:16:16 »
Disculpa es que no alcance a pegar todo.

Copia la carpeta en C:\

jose

Gracias al archivo pude detectar el error que tenia en mi codigo. Muchisimas gracias por la ayuda, una vez mas.

Ahora, con el tema de no perder el valor del oscilador local. Cuando compre el pic, tengo que leer el valor de la ultima posicion y tenerlo guardado en algun lugar para copiarlo cada vez que borre/grabe el pic?
Y para usarlo, no tiene que tene el codigo:
Código: [Seleccionar]
call 3FFh
movwf OSCCAL
Gracias de nuevo!.

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Que hago mal? (12f675)
« Respuesta #11 en: 08 de Septiembre de 2008, 16:56:29 »
Al final no pusiste cual fue el error, así les sirve a todos los compañeros como referencia.
saludos
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Que hago mal? (12f675)
« Respuesta #12 en: 10 de Septiembre de 2008, 09:12:40 »
Estaba definiendo algunos registros mientra estaba en el banco 0 que eran del banco 1 y viceversa....


 

anything