Autor Tema: Mala experiencia con el TMR0  (Leído 3083 veces)

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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Mala experiencia con el TMR0
« en: 25 de Agosto de 2008, 22:05:24 »
Hola Amigos!, como dice el titulo del post, hoy he tenido una mala pasada  :?
Un programa de una especie de cronometro, que escribí y funcionaba hace 4 años atrás , pero hoy no quería saber nada!!!

Lo primero que pensé, en la placa,... revise todo...

La cuestión es que el valor de precarga del timer0 , para un micro 16f628 de 20 Mhz era

   
Código: ASM
  1. org     4               ;interrupcion
  2.  
  3.         movwf   SALVAW               ;Salva W
  4.         swapf   STATUS,W             ;Invierte STATUS --> W
  5.         movwf   SALVASTATUS          ;Salva STATUS
  6.  
  7.         MOVLW   .12    
  8.         MOVWF   TMR0

y resulta que no funcionaba...

cambié el valor a 160 y ya funcionaba, pero logicamente con un notable retraso...
y si le colocaba 159 ya no funcionaba más..

Cargue el programa en un micro de 4 Mhz... y ocurria lo mismo....  ¿pueden ser micros "remarcados" y que en realidad no son de 20 mhz???

a alguien le ocurrio algo similar?

Gracias

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Mala experiencia con el TMR0
« Respuesta #1 en: 25 de Agosto de 2008, 22:19:34 »
Hola amigo norberto!
Mira revisa el modelo del pic porque si dice pic16f628-04 opera hasta 4Mhz y si dice pic16f628-20  opera hasta 20Mhz  :mrgreen:
esto esta en el capitulo 17 del data sheet  :mrgreen:

O prueba con otro micro a ver si es eso cambiando el cristal y los condensadores asociados a este por otros.

Lo llegaste a probar en el proteus a ver si te funciona alli?

Saludos


Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Mala experiencia con el TMR0
« Respuesta #2 en: 25 de Agosto de 2008, 22:26:12 »
 :D si si, Ralf, por eso coloque si eran micros "remarcados", ya que el de 4 mhz, se comporta igual que el "teoricamente" de 20mhz...

El programa, ya estaba funcionando, simplemente fúe construir otro proyecto similar, y volverme loco!!!  :D

No empleo proteus, pero la simulacion con MPLAB funciona perfectamente...

simplemente cambiando el valor de  carga del TMR0 de .159 a .160 , hace que el programa deje de funcionar...  :?

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Mala experiencia con el TMR0
« Respuesta #3 en: 25 de Agosto de 2008, 22:30:46 »
Pero si cambias de .159 a .160 aun asi no te funciona?
Si es asi, podrias publicar el programa para ver que sucede?


Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Mala experiencia con el TMR0
« Respuesta #4 en: 25 de Agosto de 2008, 22:43:02 »
Hola Ralf, te repito, que lo raro, es que ya estaba funcionando, y con valores de precarga superiores ...

Código: ASM
  1. org     4               ;interrupcion
  2.  
  3.         movwf   SALVAW               ;Salva W
  4.         swapf   STATUS,W             ;Invierte STATUS --> W
  5.         movwf   SALVASTATUS          ;Salva STATUS
  6.  
  7.         MOVLW   .155    ;.12    ;.165   ;.155   ;.12 <<<<<---- aqui el valor era de 165... y ahora es imposible superar un valor de 159
  8.         MOVWF   TMR0
  9.  
  10.  
  11. UNIDAD  movlw   .9      ;CONTADORES INDIVIDUALES DE UNIDAD,DECENA.CENTENA Y UNIMIL
  12.                 subwf   UNI,W
  13.                 btfsc   STATUS,Z
  14.                 goto    DECENA
  15.                 incf    UNI,F
  16.                 goto    SALE_CONTADOR
  17. DECENA  CLRF    UNI
  18.                 movlw   .9
  19.                 subwf   DEC,W
  20.                 btfsc   STATUS,Z
  21.                 goto    CENTENA
  22.                 incf    DEC,F
  23.                 goto    SALE_CONTADOR
  24. CENTENA CLRF    DEC
  25.                 movlw   .9
  26.                 subwf   CEN,W
  27.                 btfsc   STATUS,Z
  28.                 goto    UNIMIL
  29.                 incf    CEN,F
  30.                 goto    SALE_CONTADOR
  31. UNIMIL  CLRF    CEN
  32.                 movlw   .9
  33.                 subwf   UNIM,W
  34.                 btfsc   STATUS,Z
  35.                 goto    DECMIL
  36.                 incf    UNIM,F
  37.                 goto    SALE_CONTADOR
  38. DECMIL  CLRF    UNIM
  39.  
  40.        
  41. SALE_CONTADOR
  42.                 BSF     BANDERA,1       ;MARCO QUE HAY UNA NUEVA CUENTA
  43.  
  44. ;RestaurarRegistros
  45.       swapf   SALVASTATUS,W        ;Invierte STATUS --> W
  46.       movwf   STATUS               ;Restaura STATUS
  47.       swapf   SALVAW,F             ;Invierte --> F
  48.       swapf   SALVAW,W             ;Restaura W
  49.  
  50.                 bcf     INTCON,2        ;pone en 0 la bandera de interrupcion
  51.         retfie

Está con preescaler 1:1


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Mala experiencia con el TMR0
« Respuesta #5 en: 26 de Agosto de 2008, 21:35:14 »
Hola Amigos!, en el día de hoy,  he adquirido nuevos micros, 16f628 de 20 mhz, y estos sí funcionan...
Cargo el mismo programa en los micros, y los nuevos me funcionan, y los que tenia anteriormente no  :shock:

Realmente increíble!!! y no le deseo esta falla a nadie!  :D

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Mala experiencia con el TMR0
« Respuesta #6 en: 27 de Agosto de 2008, 11:21:08 »
 :shock: :shock:

Eso quiere decir, que los micros que tienes, (los que no andaban), están fallados. Y esto puede ser un dolor de cabeza muy grande.

De esto debemos tomar que, si en la simulación de MPLAB anda, el hardware está bien, hay que probar con varios PIC, para empezar a descartar problemas.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Mala experiencia con el TMR0
« Respuesta #7 en: 28 de Agosto de 2008, 13:56:48 »
Hola, aqui no es que el micro está fallado  :mrgreen: :mrgreen:Fallado, para mí seria que no funciona... pero en este caso, simplemente tiene que detectar un pulsador, encender o apagar un led, y generar pulsos de 20 uS  :mrgreen:
 El programa ya estaba funcionando hacia 4 años..., al grabar en uno de los pic nuevos no andaba!
Con solo cambiar el valor de la precarga del tmr0  ya no funcionaba mas la parte de timer, pero si el sensado, encendido y apagado del led...   por eso lo curioso del tema!!!  lo que renegué con esto!!!  :x

Por eso, comente el problema, por si a otro le pasa algo similar  :mrgreen: (yo creo que eran pic truchos)

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Mala experiencia con el TMR0
« Respuesta #8 en: 31 de Agosto de 2008, 11:21:17 »
Hola:

Estas usando el divisor de frecuencias? si es asi cada vez que escribes un valor al timer0 el valor del divisor de frecuencias se borra por eso al escribir al timer0 debes a continuación escribir de nuevo el valor del divisor de frecuencias (datasheet), tal vez por eso no te cumplen los tiempos con otro valor.

Javicho.


 

anything