Autor Tema: problema con los tiempos reales con pic 16F88  (Leído 1895 veces)

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

Desconectado chealva

  • PIC10
  • *
  • Mensajes: 5
problema con los tiempos reales con pic 16F88
« en: 02 de Marzo de 2020, 15:47:39 »
Hola, un saludo soy nuevo en este foro.
 Mi problema es que cuando hago un porgrama con el pic 16F88 en asm, al simularlo o al probar con el propio pic, los tiempos que utilizo para retardos por ejemplo, no se corresponde con el tiempo real. Ya instale una version diferente de MPLAB X IDE y sigue el problema. Parece ser que es algo de configuracion. Espero comentarios. Gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:problema con los tiempos reales con pic 16F88
« Respuesta #1 en: 02 de Marzo de 2020, 18:14:01 »
Tenes que configurar correctamente los FUSES y hacer correctamente la rutina de delays para esperar los ciclos correctos.

Tambien podes plantearte medir el tiempo del delay que estas teniendo, y el supuesto, de esa forma vas a tener alguna relacion, ya sea un delay 2,4,8 veces mas rapido o mas lento. Como para ir pensando que puede ser.

Desconectado chealva

  • PIC10
  • *
  • Mensajes: 5
Re:problema con los tiempos reales con pic 16F88
« Respuesta #2 en: 03 de Marzo de 2020, 06:42:08 »
Gracias. El caso es que ya he revisado los fuses comprobandolo con otros  ejemplos en la red, y todo parece estar bien.Ya he medido el retardo, y me va unas 8 veces mas rapido de lo normal. No se que puede ser. Seguire investigando. Un saludo

Desconectado chealva

  • PIC10
  • *
  • Mensajes: 5
Re:problema con los tiempos reales con pic 16F88
« Respuesta #3 en: 03 de Marzo de 2020, 11:14:23 »
Hola de nuevo. He hecho un programa sencillo, que es el parpadeo de un led, y el retardo deberia de ser de unos 62,5 ms segun el programa para cada cambio de estado del led, sin embargo el tiempo real es de mas o menos un segundo. Os muestro el programa:


LIST P=PIC16F88
 INCLUDE <P16F88.INC>


; CONFIG1
; __config 0x2F09
 __CONFIG _CONFIG1, _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CCPMX_RB3 & _CP_OFF
; CONFIG2
; __config 0x3FFC
 __CONFIG _CONFIG2, _FCMEN_OFF & _IESO_OFF


            ORG     H'00'

BANCO0      MACRO
            BCF     STATUS,RP0
            BCF     STATUS,RP1
            ENDM

BANCO1      MACRO
            BSF     STATUS,RP0
            BCF     STATUS,RP1
            ENDM


#DEFINE     CUENTA1     H'20'
#DEFINE     CUENTA2     H'21'




            BANCO1

            MOVLW       H'00'
            MOVWF       TRISB

                  BANCO0

INICIO        BSF         PORTB,0
                  CALL        RETARDO
                  BCF         PORTB,0
                  CALL        RETARDO
                  GOTO        INICIO

RETARDO    MOVLW       D'250'
                  MOVWF       CUENTA1
VUELVE2     MOVLW       D'250'
                  MOVWF       CUENTA2
VUELVE1     DECFSZ      CUENTA2
                  GOTO        VUELVE1
                  DECFSZ      CUENTA1
                  GOTO        VUELVE2
                  RETURN


                  END

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:problema con los tiempos reales con pic 16F88
« Respuesta #4 en: 04 de Marzo de 2020, 12:20:03 »
Que tal chealva,

Para comenzar diré que tu rutina de delay para nada genera un delay de 62,5ms. Realizando la simulación la rutina genera un delay de 188.505 ms. Eso es casi tres veces lo que tu pensabas, no es simplemente 250 X 250 como tú lo supones. Recuerda quecada instrucción tiene un tiempo de ejecución que por lo regular es 1 ciclo instrucción (en tu caso si el cristal es de 4MHz, entonces el ciclo instrucción es de 1us), y 2 ciclos instrucción para las intrucciones que realizan salto (DECFSZ, GOTO, CALL, etc).
Por lo tanto si realizas correctamente la cuenta de los cilcos instrucción te darás cuenta de que es imposible que tu rutina sea de 62,5 ms.
Digamos que tu código está bien, pero tienes que estar seguro que tu cristal es de 4MHz y que no sea un crital serie, de lo controario no funcionará correctamente.

elreypic.

Desconectado chealva

  • PIC10
  • *
  • Mensajes: 5
Re:problema con los tiempos reales con pic 16F88
« Respuesta #5 en: 04 de Marzo de 2020, 15:56:14 »
Hola y gracias por contestar. Ok tienes razón evidentemente. No tuve en cuenta todos los tiempos, por ir directamente al grano. El caso es q con ese retardo el led cambia de estado cada 1 segundo, muy por encima del tiempo q debería de ser. Lo he probado tanto con el proteus como físicamente, con lo cual no creo q sea ni el oscilador ni ningún componente. El caso es q antiguamente con mi ordenador viejo q tenia instalado windows 7, funcionaba todo perfectamente, y ahora con Windows 10 no hay manera. No sé si será eso. Un saludo

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:problema con los tiempos reales con pic 16F88
« Respuesta #6 en: 04 de Marzo de 2020, 16:52:28 »
Yo lo simulé tanto en MpLAB como con proteus y todo funciona bien.
Coloca un osciloscopio en el pin que activa el led y mide la señal, obviamente en el proteus tu pudieras ver que se enciende más lento pero fíjate en el reloj del proteus o bien como te dije, coloca un osciloscopio y realiza las mediciones

Elreypic

Desconectado allennet

  • PIC16
  • ***
  • Mensajes: 108
Re:problema con los tiempos reales con pic 16F88
« Respuesta #7 en: 04 de Marzo de 2020, 20:54:33 »
Cuando la simulacion es demasiado pesada el proteus se retrasa y aparece cpu limit o similar, quitale animacion y probes bajale los frame, usa un frecuencimetro
"La curiosidad mato al gato, pero murio sabiendo"

Desconectado chealva

  • PIC10
  • *
  • Mensajes: 5
Re:problema con los tiempos reales con pic 16F88
« Respuesta #8 en: 06 de Marzo de 2020, 14:38:42 »
Hola. Al final parece que di con el problema. Hice lo mismo en otro ordenador, y me funciona todo a la perfeccion. No se que problemas es el que habia con mi ordenador, pero seguramente lo voy a formatear por que va lento y asi aprovecho. Una vez formateado probare otra vez en mi ordenador aver. Muchas gracias por vuestra molestia, y un saludo, adios


 

anything