Autor Tema: ¿Cómo usar TOCKI?  (Leído 19487 veces)

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

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ¿Cómo usar TOCKI?
« Respuesta #30 en: 16 de Agosto de 2006, 09:30:18 »
Lorenzo, Vamos a ir poniendo las cosas en claro.

Teniendo 1 solo timer hay 2 caminos.

1) Tomas una cantidad de pulsos y mides el tiempo que llevó hacerlo.  Configuras el TIMER0 y vas contando también sus desbordes hasta que llegas por ejemplo a contar 10 pulsos.  De acuerdo a cuanto tiempo mediste hasta que ocurrieron esos 10 pulsos serán las RPM que mediste

2) Usas una rutina de temporización FIJA por software (como tú estas haciendo) y cuentas la cantidad de pulsos.


Bien, hasta ahí vamos bien.  Tu has elegido la 2da opción.

Yendo a tu esquema, veo que usas un zener de 5.6V? He visto bien?  SI es así, te pido que lo cambies!  5.25V a 5.5V suele ser la máxima tensión que soporta un PIC.  Usa uno de 4.7 o 4.2V cualquier valor mayor que 4 y menor que 5 te dará una lectura como en alto.  Y digo esto pensando en las entradas Schmitt Trigger que necesitan una tensión de 0.8Vdd para tomarse como alto.

Sabiendo esto, podríamos estar frente al caso en que tal vez.. digo solo 'tal vez' se haya dañado dicha entrada en el PIC.

Si tienes otro PIC, por favor haz el reemplazo.  Sino, bueno, prueba 'a mano' ir generando pulsos e irlos mostrando directamente en el puerto B.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #31 en: 16 de Agosto de 2006, 11:22:37 »
Hola, maunix yo he usado la segunda opción porque la primera no sé usarla, aunque siga usando la segunda, me gustaría si fuera posible, que me explicases como hacer la primera con el 16f84a. Lo de usar un zéner de 4.7 voltios, automáticamene lo voy a hacer, así que compraré algunos para tenerlo. Y lo de que pudiera estar el pin 4 de la puerta A, lo voy a comprobar con otro, ya sea por asegurarnos. Por cierto, ¿ves correcto el código para mostrar los pulsos contados en binario a través de la puerta B?
Gracias y saludos.

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ¿Cómo usar TOCKI?
« Respuesta #32 en: 16 de Agosto de 2006, 15:54:44 »
despues nos esplicas como hacer la primera opcion.
bueno estoy atento al proyecto ya que no he tenido la oportunidad de colaborar porque mis conocimientos no medan EN RPM.

PREGUNATS TRIVIALES DISCULPEN.
si ocurren 10 pulsos cuantas RPM HAY?

CUAL ES EL MAXIMO rpm QUE SE MIDE EN EL PROYECTO.


GRACIAS. 
« Última modificación: 16 de Agosto de 2006, 16:04:22 por microcom »

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #33 en: 16 de Agosto de 2006, 19:52:49 »
Hola microcom, cada pulso equivale a 120 rpm, una resolución muy baja, ya que mi coche sólo proporciona dos pulsos por revolución, para tener una resolución mayor tendría que aumentar el tiempo de muestra. Podría aumentar dicho tiempo a base de tomar muestras cada segundo, lo que pasa es que entonces la visualización no se correspondería a tiempo real. Aunque podría tomarlo a través del alternador, que podría dar entre 8 y 12 pulsos por revolución En el peor de los casos se podría obtener 26 pulsos cada 250 milisegundos, dando una resolución de unas 7.5 revoluciones por cada pulso, que todavía se podría aumentar más, pero que ahora mismo no es un problema que me preocupe, ya que lo que quiero es arrancar con el proyecto.
Gracias y saludos.

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #34 en: 16 de Agosto de 2006, 20:13:53 »
Hola, y si tomas las revoluciones de los sensores de las revoluciones que las toma de una rueda fónica de la polea del cigüeñal ni te cuento. Te lo digo de memoria, una vez la medí en el coche de mi hermano y me daba una frecuenda de 1000 Hz, lo que proporcionaría que la rueda fónica tendría unos 75 dientes, imagínate, la resolución que daría que cada pulso equivale a 0.01 revolución, más que sobrado para conocer las revoluciones, pero ya dependerá de cada coche.
Gracias y saludos.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: ¿Cómo usar TOCKI?
« Respuesta #35 en: 17 de Agosto de 2006, 10:28:28 »
Hola a todos, y creo que hay que acomodar la situación.

maunix tus conocimientos son más amplios que los del colega Lorenzo; Que, como el mismo lo dice esta tratando de aprender, y él en un principio esta intentando hacer el tacómetro con el TMR0, si bien esta no es la mejor manera lo quiere hacer así para aprender, por lo tanto creo que sería importante que solo te limites a proponer soluciones o responder a los problemas que se le presenten usando el metodo que el desea ya que si le recomiendas usar el de medir los tiempo, no logrará ni aprender ni uno ni el otro.

jfmateos2, Lorenzo esta tratando de hacer un tacómetro con el TMR0 por lo tanto usar un contador externo, aparte de que lo veo completamente innecesario e inutil, no es una opcion valida en este caso.

microcom te felicito si quieres aprender de este post como controlar y usar el TMR0, por lo tanto es valida tu opinio y el posteo de tus dudas y posibles soluciones, por lo tanto nadie en sus cabales debería ofenderce o mal interpretar tus actividades en este post.

Lorenzo si posteas un programa, hazlo completo y no por partes, ya que un error puede estar en cualquier parte de él.

Esto lo quiero aclarar porque estoy viendo que entre todos no pueden sacar nada en claro, por lo tanto deberemos de abtenernos de hacer comentarios innecesario al tema origuinal del post, seguiremos el proyecto usando el TMR0 (por ahora sacando los datos en binario por el PORTB), y no otro método (los hay varios) OK, esto es para todos. Haber si podemos dejar el proyecto en claro.

Lorenzo, a tu ultimo post te comento que las ruedas fónicas vienen con 58 y 28 dientes, depende la marca del vehiculo, pero no son todos equidistantes, para que te des una ideal, el de 58 dientes esta formado por una rueda que debería tener 60 dientes, pero le an sacado 2, por lo tanto le quedan 58 y entre dos dientes tiene una separacion mucho mayor al resto.

Lorenzo
, el circuito de entrada que as presentado, ¿es el que usas el la realidad y medir directamente desde el auto? o ¿lo estas usando solo en el taller para introducir los pulsos al PIC?

Si es el que usas para medir directamente del auto, desde ya te comento que no es el mejor, por lo tanto deberiamos tratar de mejorarlo ya que no funcionara de manera correcta. Ahora si solo lo usas en el taller es muy complejo y podemos hacerlo más sencillo.

Me gustaria que pongas el programa completo, ya que la parte que colocas, aunque posee unos errores, no estaria mal en pricipio, pero debemos ver como canfiguras los puertos y el TMR0.

         decfsz   RETRASO,F
         goto      PAUSA2
         decfsz   RETRASO1,F
         goto      PAUSA1
         decfsz   RETRASO2,F
         goto      PAUSA

Ahi esta el error, te falta comentar donde debería el PIC guardar el resultado (las ,F agregadas).

Bueno, esperaré tu repuesta.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #36 en: 17 de Agosto de 2006, 12:48:51 »
Hola, Carlos muchisimas gracias por contestar, y también a los demás compañeros que han participado, ya que aunque en alguna respuesta no den una solución, pero yo la voluntad la agradezco un montón.  Te dejo aquí mi código completo, o el poquito que he hecho




            LIST   P=16F84A
      
STATUS      EQU      03
TRISA      EQU      05
TRISB      EQU      06
PORTA      EQU      05
PORTB      EQU      06
OPTION_REG   EQU      01
RP0         EQU      05
W         EQU      00
F         EQU      01

   
REVOLUCION   EQU      10
RETRASO      EQU      11
RETRASO1   EQU      12
RETRASO2   EQU      13
NUMERO      EQU      14
NUMERO1      EQU      15



         ORG      0
            
;Configuramos los archivos.
            
CONFIGURACION   
         
         bsf      STATUS,RP0
         clrf   TRISB
         clrf   TRISA
         movlw   b'10101000'
         movwf   OPTION_REG
         bsf      STATU,RP0
         clrf   PORTA
         clrf   PORTB



            
;Rutina de retardo de unos 250 milisegundos.
            
INICIO         
         clrf   TMR0
         movlw   .4
         movwf   RETRASO2

PAUSA      
         movlw   .250
         movwf   RETRASO1

PAUSA1      
         movlw   .250
         movwf   RETRASO
         
PAUSA2      
         decfsz   RETRASO
         goto   PAUSA2
         decfsz   RETRASO1
         goto   PAUSA1
         decfsz   RETRASO2
         goto   PAUSA
            


;Rutina de para reconocer los impulsos del TMR0.

   
         movf   TMR0,W
         movwf   REVOLUCION
         movwf   PORTB
         goto    INICIO
         
         
         END



El tema del circuito es el que pongo directamente en el coche, yo las pruebas las hago directamente en el coche, excepto que le voy a cambiar el zéner por uno de 4.7 voltios, como me aconsejó el compañero maunix. Lo de la rueda fónica, decirte que esos dientes que les falta son para para indicarle la posición del cilindro número 1, también lleva otro sensor llamado sensor de fase situado en el árbol de levas e indica la posición de cada pistón.
Gracias y saludos.
« Última modificación: 17 de Agosto de 2006, 13:24:22 por Lorenzo »

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: ¿Cómo usar TOCKI?
« Respuesta #37 en: 17 de Agosto de 2006, 14:04:10 »
Hola Lorenzo, si, el funcionamiento de la electrónica de un motor la conosco bastante, pero el sensor de fase debes tener en cuenta que no todos los autos lo traen, algunos solo disponen de la rueda fónica.

Pasando al tema que nos compete:

Tal y como suponía tienes varios errores en el programa que as realizado, aquí te dejo el programa, pero bien estructurado:

Código: ASM
  1. LIST            P = 16F84A
  2.         INCLUDE         <P16F84A.INC>
  3.         ERRORLEVEL      -302
  4.  
  5. ;-------------------------------------------------------
  6.  
  7. REVOLUCION      EQU     H'0C'
  8. RETRASO         EQU     H'0D'
  9. RETRASO1        EQU     H'0E'
  10. RETRASO2        EQU     H'0F'
  11.  
  12. ;-------------------------------------------------------
  13.  
  14.         ORG     .0
  15.         bcf     STATUS,RP0
  16.         bcf     STATUS,RP1
  17.         GOTO    CONFIGURACION
  18.  
  19.         ORG     .4
  20.         bcf     INTCON,GIE
  21.         RETURN
  22.  
  23. ;-------------------------------------------------------
  24.  
  25. ;Configuramos los archivos.
  26.  
  27. CONFIGURACION
  28.  
  29.         clrf    PORTA
  30.         clrf    PORTB
  31.  
  32.         bsf     STATUS,RP0
  33.         clrf    TRISB
  34.         movlw   B'00010000'
  35.         movwf   TRISA
  36.         movlw   b'10101000'
  37.         movwf   OPTION_REG
  38.         bcf     STATUS,RP0
  39.         goto    INICIO
  40.  
  41. ;-------------------------------------------------------
  42.  
  43. ;Rutina de retardo de unos 250 milisegundos.
  44.  
  45. INICIO
  46.         clrf    TMR0
  47.         movlw   .4
  48.         movwf   RETRASO2
  49. PAUSA
  50.         movlw   .250
  51.         movwf   RETRASO1
  52. PAUSA1
  53.         movlw   .250
  54.         movwf   RETRASO
  55. PAUSA2
  56.         decfsz  RETRASO,F
  57.         goto    PAUSA2
  58.         decfsz  RETRASO1,F
  59.         goto    PAUSA1
  60.         decfsz  RETRASO2,F
  61.         goto    PAUSA
  62.  
  63.         movf    TMR0,W          ;Rutina para reconocer los impulsos del TMR0.
  64.         movwf   REVOLUCION
  65.         movwf   PORTB
  66.         goto    INICIO
  67.  
  68. ;-------------------------------------------------------
  69.         END

Como podras apreciar hay unas cuantas diferencias, que tratare de explicarte:

INCLUDE , esta instrucción hace que el compilador incluya en tu programa las definiciones para cada una de las funciones de las cuales dispone el PIC, de esta manera no tienes que andar definiendolas tú en el programa, como puedes ver yo las e borrado y el compilador no te tira ningun error.

ERRORLEVEL , esta instruccion le indica al compilador que no te de una advertencia cuando un reguistro no se encunetra en la paguina 0 de la memoria RAM, pero si deseas sacarla no habra problemas, y el compilador te indicara que reguistros estan en una paguina distinta a la cero para que tu prestes atencion si previamente as seleccionado la paguina correcta, esto te ayuda a no comenter errores de paguinacion de RAM.

ORG 0 y ORG4, son las direcciones de arranque y de interrupcion del PIC, despues de ORG0 yo e colocado las 2 instrucciones bcf, para asegurarme de que el PIC se inicialice en el banco de mamoria RAM cero. Luego de ORG 4 coloco desactivar las interrupciones, ya que de la unica forma que llegue a esa posicion es que estas se activen, y si quedan de esa manera haran que tu programa pueda funcionar mal, luego retorno donde estaba con anterioridad.

CONFIGURACIÓN, los clrf deben ir delante de la configuración de los puertos, para asegurarte de que luego de configurados ya se encuentran en el estado deseado.

Se configura puerto B como salida y el pin correspondiente a la entrada de TMR0 (RA4) como entrada.

Hay que acordarce de pasar nuevamente a la paguina cero de la RAM con la funcion bcf, de lo contrario no funcionará el programa.

Con el goto saltamos a la rutina de INICIO, que en este caso esta seguido de lo anterior, pero si de por medio hubiera otra rutina el programa comensaría en un lugar no deseado.

En la sub-rutina de INICIO, estaba casi todo bien, salvo que te faltaba definir el destino de los DECFSZ colocando ",F", si no lo haces el compilador te indicaria una advertencia, no te olvides nunca de definir el destino que para esta y la gran mayoria de las instrucciones pueden ser 2, el propio reguistro que se indica con ",F", o el reguistro W que se indica con ",W"

En el proximo mensaje incluire un circuito de entrada para que puedas sensar bien la señal del auto.

Bueno, espero que puebes esta nueva rutina y me comentes tus dudas y experiencias.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ¿Cómo usar TOCKI?
« Respuesta #38 en: 17 de Agosto de 2006, 15:19:37 »
         decfsz   RETRASO,F
         goto      PAUSA2
         decfsz   RETRASO1,F
         goto      PAUSA1
         decfsz   RETRASO2,F
         goto      PAUSA

Ahi esta el error, te falta comentar donde debería el PIC guardar el resultado (las ,F agregadas).

Charly, el ensamblador por defecto, en caso de que no se especifique el destino del resultado de la instrucción, es 1. Por lo tanto, allí no puede estar el error...
Si no pones destino, podras ver que el ensamblador arroja advertencias:
Algo asi como:
"Warning: Using default destination of file(1)"
"Advertencia: Usando destino del registro por defecto(1)"

Sí hubiese sido un error si el destino que se necesitaba era W(0).

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: ¿Cómo usar TOCKI?
« Respuesta #39 en: 17 de Agosto de 2006, 16:54:36 »
Hola Bruno, eso que comentas yo lo sé, pero a Lorenzo que recien esta queriendo aprender le va a permitir que no se olvide de ese punto. Con respecto al error no esta en ese lugar, si no en la parte de configuración compara mi .asm con el de el y te darás cuenta exactamente cual es el error.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #40 en: 17 de Agosto de 2006, 17:24:34 »
Hola, el tipo de imagen es ésta, el coche a ralentí da una frecuencia de unos 26 ó 27 Hz, y el pulso tiene una duración de 1.7 milisegundos y una amplitud de 5 voltios. perdonad si la imagen no es muy buena, pero la cámara no es buena para estas cosas, y el osciloscopio no tiene transferencia de datos. He hecho la prueba y no ha salido como esperaba [/img][/img]

Y aquí os dejo el código que he utilizado:

      LIST   P=16F84A
      
STATUS      EQU      03
TRISA      EQU      05
TRISB      EQU      06
PORTA      EQU      05
PORTB      EQU      06
OPTION_REG   EQU      01
TMR0      EQU      01
RP0      EQU      05
W      EQU      00
F      EQU      01

   
REVOLUCION   EQU      10
RETRASO      EQU      11
RETRASO1   EQU      12
RETRASO2   EQU      13
NUMERO      EQU      14
NUMERO1      EQU      15



      ORG      0
            


;Configuramos los archivos.
            
CONFIGURACION   
         
      bsf   STATUS,RP0
      clrf   TRISB
      movlw       b'10000'
                                movwf       TRISA
      movlw   b'10101000'
      movwf   OPTION_REG
      bcf   STATUS,RP0
      clrf   PORTA
      clrf   PORTB



            
;Rutina de retardo de unos 250 milisegundos.
            
INICIO         
      clrf   TMR0
      movlw   .4
      movwf   RETRASO2

PAUSA      
      movlw   .250
      movwf   RETRASO1

PAUSA1      
      movlw   .250
      movwf   RETRASO
      
PAUSA2      
      decfsz   RETRASO
      goto   PAUSA2
      decfsz   RETRASO1
      goto   PAUSA1
      decfsz   RETRASO2
      goto   PAUSA
            


;Rutina de para reconocer los impulsos del TMR0.

   
      movf   TMR0,W
      movwf   REVOLUCION
      movwf   PORTB
      goto    INICIO

                   

                               END



Gracias y saludos.


Hola a todos, perdona Carlos pero te puse un código que en la parte de la configuración estaba mal, lo que pasa es que como estoy utilizando dos ordenadores puse un código erroneo, en lo referente a lo de bsf STATUS,RP0 en vez de BCF STATUS,RPO, sino fijate en el de arriba que lo expuse hace varios días. Así que paso a explicarte cada cosa que has dicho:
- Lo de la directiva INCLUDE p16f8a me define todos los registros, lo que pasa que me resisto a utilizarlo, ya que como estoy empezando prefiero estar definiendo los registros para que se me queden grabados, lo que pasa que voy a definir exactamente igual que en ese archivo, para que cuando cualquier compañero lo lea, no le cueste trabajo, ya que me lo aconsejón un compañero, no sé si fue maunix.
- Lo de RP1 no lo utilizo porque en el 16f84a da lo mismo el valor que tenga porque nada más tiene 2 bancos.
- Lo de ORG 4 no lo he utilizado porque como no he especificado ninguna interrupción, pues he creido que no hacía falta.
- Lo de clrf, primero he configurado las puertas y una vez vuelto al banco cero, es cuando limpio las puertas con clr.
- Lo de la configuración de la puerta b, la defino como salida y la A, el pin 4 está definido como entrada y las demás como salida, que como ves en el archivo que cito está bien, y te vuelvo a pedir perdón por poner un código erroneo.
- Lo de goto INICIO, no te entiendo bien lo que dices, pero lo que hago es mandarlo a INICIO para que vuelva a hacer el retraso de 250 milisegundos, una vez mostrado los datos en la puerta B.
- Referente en lo de las F, yo las tengo definidas como 1.
Así que creo que he contestado a todas los errores que has visto, por error mío al poner un código incorrecto, que si ves en los que cito ese es el código correcto que yo tengo en el pic.
Gracias y saludos.
« Última modificación: 17 de Agosto de 2006, 17:27:11 por Lorenzo »

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #41 en: 17 de Agosto de 2006, 17:35:37 »
Hola, y para no liar mucho los mensajes os pongo el código que tiene el pic, y lo revisaré para crear más confusión.

   LIST   P=16F84A
      
STATUS      EQU      03
TRISA      EQU      05
TRISB      EQU      06
PORTA      EQU      05
PORTB      EQU      06
OPTION_REG   EQU      01
TMR0      EQU      01
RP0      EQU      05
W      EQU      00
F      EQU      01

   
REVOLUCION   EQU      10
RETRASO      EQU      11
RETRASO1   EQU      12
RETRASO2   EQU      13
NUMERO      EQU      14
NUMERO1      EQU      15



      ORG      0
            


;Configuramos los archivos.
            
CONFIGURACION   
         
      bsf   STATUS,RP0
      clrf   TRISB
      movlw   b'10000'
      movwf   TRISA
      movlw   b'10101000'
      movwf   OPTION_REG
      bcf   STATUS,RP0
      clrf   PORTA
      clrf   PORTB



            
;Rutina de retardo de unos 250 milisegundos.
            
INICIO         
      clrf   TMR0
      movlw   .4
      movwf   RETRASO2

PAUSA      
      movlw   .250
      movwf   RETRASO1

PAUSA1      
      movlw   .250
      movwf   RETRASO
      
PAUSA2      
      decfsz   RETRASO
      goto   PAUSA2
      decfsz   RETRASO1
      goto   PAUSA1
      decfsz   RETRASO2
      goto   PAUSA
            


;Rutina de para reconocer los impulsos del TMR0.

   
      movf   TMR0,W
      movwf   REVOLUCION
      movwf   PORTB
      goto    INICIO

                           END

Espero no haberme equivocado otra vez por mi torpeza a la hora de exponer las cosas, pero ya digo, es que con la leche de tener los dos ordenadores me estoy líando.
Gracias y saludos.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: ¿Cómo usar TOCKI?
« Respuesta #42 en: 17 de Agosto de 2006, 18:03:13 »
Hola Lorenzo, si quieres tu definir todas las variables para aprenderlas es una cosa, pero si tu deseas que el programa quede bien presentado, lo de no usar el include me parece una burrada, en realidad me parece una burrada también para aprenderlo, ya que el simple hecho de usar un par de veces cada función hace que las apendas, y por otro lado complicas al nuevo usuario que trata de entender un programa, presentandole opciones que normalmente no se usan de esa manera y el usuario aprende a estructurar mal un programa, quien te haya dado ese consejo creo que debería pensarlo nuevamente.

Por otro lado el que vos no hallas configurado las interrupciones no quiere decir que por cosas del destino (una interferencia) no se configuren solas, entonces debes tratar de hebitar que el programa falle ante estos casos, esto lo comento por experiencia, ahora si tu no deseas hacer lo que te comento es lo mismo solo que tienes un mayor riesgo al dejar probabilidades de fallas.

Una pregunta que te haré es sobre que frecuencia de cuarzo que estas usando ya que no logro encontrar si en algun lado lo comentas. Si la frecuencia que usas no es 12MHz desde ya te digo que la rutina de retardo no es la correcta, y para que te des una idea a 4MHz tienes un retardo de 754 mseg y a 20 MHz uno de 150 mseg, por lo tanto con el único que consigues un retardo aproximado a los 250 mseg que deseas es con un reloj de 12 MHz.

Un saludo y espero tu respuesta.

Atte. CARLOS.
« Última modificación: 17 de Agosto de 2006, 18:08:48 por Chaly29 »
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ¿Cómo usar TOCKI?
« Respuesta #43 en: 17 de Agosto de 2006, 18:48:46 »
bueno si uno tiene un oscilador de 4mhz y uno hace un retardo de 1ms cuanto  retardo real se ejecuta.

a eso tiene que ver con el tiempo de muestreo de rpm.?

muchas gracias



Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #44 en: 17 de Agosto de 2006, 18:51:09 »
Hola, Carlos creo que me explicado mal, lo que me aconsejó el compañero que no recuerdo exactamente quien fue, por ejemplo, en vez de escribir STATUS, yo hacía una tradución al español y ponía ESTADO, en vez de PORTA, ponía PUERTAA, entonces me decía que lo escribiera tal como era definido en p16f4a.inc. De aquí en adelante incluiré el archivo 16f84a.inc en la cabecera, porque es lo más correcto y por lo tanto lo quiero hacer así.
Lo de las interrupciones me parece bien el consejo, mejor prevenir que curar.
El oscilador es a 4 Mhz, y te explico en razón de como hice la rutina de esa manera. Como el reloj es de 4 Mhz, cada instrucción tarda en ejecutarse cuatro ciclos de reloj, menos la de salto que tardan 8, pero tomo las primeras, es decir, cada instrucción tarda 1 microsegundo. MI rutina de  retrasos son 250 microsegundos x 250 miscrosegundos x 4 microsegundos me da un total de 250000 microsegundos que pasado a milisegundos son 250. Si estoy equivocado te pediría que me corrigieras. Perdonad por todo los problemas que te estoy dando, pero es que quiero aprender.
Gracias y saludos.


 

anything