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

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

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ¿Cómo usar TOCKI?
« Respuesta #15 en: 14 de Agosto de 2006, 13:22:22 »
amigo como vas a captar los pulsos por medio de un fototransitor ;
los display son de anodo o catodo.

 
amigo estoy perdido en tu idea.
Porque decrementas revolucion ;
debes decrementar la variable 50


cincuenta  equ  .50

tambien podias hacer asi

sss      clrf  tmro
eeee   movf   tmro,0       
          xorlw  .120           
          btfss   status,2        ; cuando el tmro llega 120
          goto    eeee            ; decremento el 50
          decfsz  cincuenta,1  ; es como multiplicar 50*120
          goto     sss
          end             ; aqui ya tubu que haber llegado a 6000

la niña ya usa el computador que bien......
« Última modificación: 14 de Agosto de 2006, 14:53:09 por microcom »

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #16 en: 14 de Agosto de 2006, 14:47:18 »
Hola, microcom, prefiero no tocar el archivo del TMR0, ya que éste nunca va a parar de contar, por eso lo hago con la registo REVOLUCION, ya que el valor será introducido en dos bytes, que son NUMERO y NUMERO1, no sé si te referiras a eso. Ahora tengo otro problema, que como lo quiero multiplexar por cuatro display, tendría que estar constantemente refrescandolos, para que se viera fijos, pero como tengo que hacer el retardo de 250 milisegundos en el programa principal, pues no puedo hacer bien el multiplexado. Lo que no sé si con un lcd tendría ese problema, o ¿también hay que hacer como con los 7 segmentos? Seguramente con otro pic y otro lenguaje sería mucho más fácil, pero hay que aguantar como un campeón, ya sea por aprender, que es de lo que tengo muchas ganas . Lo primero que voy a hacer y supongo que será muy fácil, la de contar los pulsos y mostralos por la puerta B, así que dentro de un rato lo probaré en el coche.
Gracias y saludos.
P.D: si ves que no sé contestarte a tus preguntas, es por mi ignorancia al respecto, por lo que pido que me disculpes.
« Última modificación: 14 de Agosto de 2006, 14:51:04 por Lorenzo »

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ¿Cómo usar TOCKI?
« Respuesta #17 en: 14 de Agosto de 2006, 15:00:59 »
el lcd te envita ese problema de refrescar los display porque un numero que mandes queda guardado el la memoria del lcd

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ¿Cómo usar TOCKI?
« Respuesta #18 en: 14 de Agosto de 2006, 15:27:07 »
Lorenzo, ahora que veo que es lo que intentas hacer, te propongo otra cosa.

1) ¿Puedes contarme como es la señal que te envía tu circuito externo? 
2) ¿Porqué quieres usar el TIMER0 en forma de contador?

Si quieres medir Revoluciones por Minuto, y encima el único timer que tienes lo usas para contar pulsos, te está faltando algo con qué comparar y por eso le estas dando vueltas al tema sin poderle ver la solución.

Al medir pulsos tan esporádicamente pierdes precisión, pero lo que puedes hacer (se me ocurre) es que cuentes por ejemplo que tiempo te demora en contar N pulsos.

Si por ejemplo fijas 10 Pulsos, bueno, pues te dedicas a 2 cosas en tu software

a) Usar el TIMER0 como timer y utilizar además otro registro auxiliar para que puedas contar el tiempo a 16 bits o más.  Por ejemplo definiendo un registro TIMER0H que se vaya incrementando cada vez que el timer0 se desborda

b) Ir leyendo todo el tiempo buscando la presencia del pulso que te indica que pasó una revolución.

Por el punto b) es importante que describas como es la señal de entrada.  Si es sólo un 'flanco' entonces estamos en problemas pero si es un pulso en alto que dure un buen tiempo en dicha condición entonces tenemos muchas chances de poderlo registrar con precisión.

Luego, puedes hacer un pequeño cálculo/relación entre el tiempo medido y las RPM que representan dicho tiempo.

Ojo que si trabajas en ensamblador tal vez te convenga directamente hacer una tabla para evitar tener que hacer una multiplicación y/o división.  No se qué precisión necesitas pero lo de la precisión lo puedes ajustar simplemente contando 'más pulsos' y relacionando eso con los timer.




- 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 #19 en: 14 de Agosto de 2006, 17:03:05 »
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.
« Última modificación: 14 de Agosto de 2006, 17:12:20 por Lorenzo »

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ¿Cómo usar TOCKI?
« Respuesta #20 en: 14 de Agosto de 2006, 18:04:19 »
que te marcó el ensayo amigo solo usas 1 display
« Última modificación: 14 de Agosto de 2006, 18:08:17 por microcom »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ¿Cómo usar TOCKI?
« Respuesta #21 en: 14 de Agosto de 2006, 18:37:53 »
Lorenzo, ¿Qué es lo que te salió en la prueba?
- 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 #22 en: 14 de Agosto de 2006, 19:10:55 »
Hola, yo puse a la salida de la puerta B, una linea de leds para leer el valor de ésta en valor binario. Supuestamente estando el motor a ralentí, la puerta debería marcar el valor 00000110, que es el 6 en decimal con oscilaciones a 00000111, 7 en decimal, ya que la que frecuencia a ralentí es de 26 ó 27 Hz, es decir, 26 ó 27 pulsos, pero cómo cuento pulsos cada 250 milisegundos, de ahí sale el valor de 6 ó 7. Pues estando a ralentí, la puerta no marca nada, aunque a veces enciende algunos leds y se apagan, pero que se pueden considerar apagados, cuando acelero empieza a encender leds y a apagarse. Cuando pongo el motor a régimen de 1500 rpm con una salida de unos 52 Hz, me debería marcar en la puerta 1101, que en decimal es el 13, que es la cuarta parte de 52 Hz, y me sale 101000, que corresponde al 40 en decimal. Creo que el código está bien, pero algo está fallando.
Gracias y saludos.

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ¿Cómo usar TOCKI?
« Respuesta #23 en: 14 de Agosto de 2006, 19:47:32 »
ESPEREMOS Y ANALIZAMOS EL ASUNTO AMIGO ::ESPEREMOS QUE NOS DICE EL VIEJO MAUNIX.

Desconectado Lorenzo

  • PIC16
  • ***
  • Mensajes: 110
Re: ¿Cómo usar TOCKI?
« Respuesta #24 en: 14 de Agosto de 2006, 20:04:19 »
amigo como vas a captar los pulsos por medio de un fototransitor ;
los display son de anodo o catodo.

 
amigo estoy perdido en tu idea.
Porque decrementas revolucion ;
debes decrementar la variable 50


cincuenta  equ  .50

tambien podias hacer asi

sss      clrf  tmro
eeee   movf   tmro,0       
          xorlw  .120           
          btfss   status,2        ; cuando el tmro llega 120
          goto    eeee            ; decremento el 50
          decfsz  cincuenta,1  ; es como multiplicar 50*120
          goto     sss
          end             ; aqui ya tubu que haber llegado a 6000

la niña ya usa el computador que bien......

Hola microcom, perdona, no me di cuenta de las preguntas que me hiciste. Los pulsos los meto directamente, es decir, después de pasar por el diodo rectificador, resistencias y zéner. Ya la niña me quita el ordenador, tiene ocho años, he podido comprar un portátil, y el de sobremesa que es un pentium III, se lo he dejado para ella.
Gracias y saludos.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ¿Cómo usar TOCKI?
« Respuesta #25 en: 15 de Agosto de 2006, 14:41:31 »
Lorenzo podríamos, si te parece, generar en el simulador estímulos que simulen tu entrada de 'ralentí'. 

Si en el simulador funciona pero no en el hardware es muy probable que tu tengas algún otro problema con el hardware.

¿Qué opinas?    Si estás de acuerdo puedo de ver de armarte un proyecto completo para MPLAB 7.4x y lo subo así lo puedes probar.


Saludos
- 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 #26 en: 15 de Agosto de 2006, 15:22:38 »
Lorenzo podríamos, si te parece, generar en el simulador estímulos que simulen tu entrada de 'ralentí'. 

Si en el simulador funciona pero no en el hardware es muy probable que tu tengas algún otro problema con el hardware.

¿Qué opinas?    Si estás de acuerdo puedo de ver de armarte un proyecto completo para MPLAB 7.4x y lo subo así lo puedes probar.


Saludos



Hola, maunix no entiendo bien lo que me quieres decir, si te refieres a que quieres hacer, yo tengo el MPLAB 7.4, pero no estoy todavía suelto con él. Yo con el que me defiendo es con la versión 5, pero ahora mismo no lo puedo utilizar, y si tú quieres comprobar algo, te lo agradecería un montón, toda la yuda prestada será bienvenida.
Gracias y saludos.
Hola, no sé si estoy equivocado me das a entend
« Última modificación: 15 de Agosto de 2006, 15:34:02 por Lorenzo »

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: ¿Cómo usar TOCKI?
« Respuesta #27 en: 15 de Agosto de 2006, 17:07:34 »
Hola Lorenzo, a pedido de microcon te estoy respondiendo.

Aclaremos unos asuntos que tienes mal entendidos:

*   Primero como e leido que solo deseas usar el 16F84, no te queda otra que usar el TMR0 para contar las RPM y para mEdir los 250 ms deberás hacerlo por software.

*   Segundo, debes tener en cuenta que si mides cada 250 ms tendrás una resolución de 120 RPM con la cual deberás hacer un montón de cálculos para poder representarlos en los display, por lo tanto te acosejo que uses un periodo de muestreo de 0.3 seg, de esta forma obtendrás una resolución de 100 RPM y no necesitas cálculos, ya que te representará directamente las RPM del motor tal como los tacómetros de serie RPMx100.

*   Tercero, cada ves que llegas a los 0.3 seg. debes borrar el TMR0 forzosamente, de lo contrario en la proxima lectura que realices te estará indicando un valor erroneo.

*   Con el valor que obtienes del TMR0 lo unico que debes hacer es convertirlo de binario (que es como sale) a BCD, para poder representarlo en los display.

*   Si tu no pretendes llegar a más de 6000 RPM con 2 display es más que suficiente, de esta forma conseguirás una lectura de asta 9900 RPM, si deseas que pase esa lectura deberás usar 3 display y podrás llegar a las 25500 RPM, y no más.

*   Los display debes trabajarlos de manera multiplexada, por lo tanto es conveniente que realices una rutina que se encarge de ello con solo llamarla con un call.

*   Ten en cuenta que los ojos son lentos para responder a los cambios y si estos son muy continuos les es molesto, por lo tanto no intentes conseguir gran cantidad de refrescos por segundos, con 0.3 seg de muestreo ya se empieza a tornar molesto, por lo tanto con 0.25 ya lo es.

Bueno, espero que esto te sea de ayuda, si necesitas más respuestas, pues, solo pregunta.

Un saludo.

Atte. CARLOS.
« Última modificación: 15 de Agosto de 2006, 17:14:06 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 maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ¿Cómo usar TOCKI?
« Respuesta #28 en: 15 de Agosto de 2006, 17:32:23 »
Lorenzo podríamos, si te parece, generar en el simulador estímulos que simulen tu entrada de 'ralentí'. 

Si en el simulador funciona pero no en el hardware es muy probable que tu tengas algún otro problema con el hardware.

¿Qué opinas?    Si estás de acuerdo puedo de ver de armarte un proyecto completo para MPLAB 7.4x y lo subo así lo puedes probar.


Saludos


Hola, maunix no entiendo bien lo que me quieres decir, si te refieres a que quieres hacer, yo tengo el MPLAB 7.4, pero no estoy todavía suelto con él. Yo con el que me defiendo es con la versión 5, pero ahora mismo no lo puedo utilizar, y si tú quieres comprobar algo, te lo agradecería un montón, toda la yuda prestada será bienvenida.
Gracias y saludos.
Hola, no sé si estoy equivocado me das a entend


El simulador del 7.4 tiene años de mejoras respecto al que trae la version 5.x

Es por ello que si simulas y anda la simulación de seguro que debiera andar en el hardware.

Si no anda, es porque tienes algún problema en TU hardware, a eso me refería

Te sugiero , ahora que tienes PC nueva, que te bajes el MPLAB 7.41 .  De la version 5.x a la actual no solo que hay muchos bugs corregidos, pics nuevos soportados y demás, sino que de seguro es mas confiable a la hora de ensamblar.

Saludos


- 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 #29 en: 15 de Agosto de 2006, 18:49:14 »
Hola, gracias por responder, seguramente es que estoy hecho un lio. Te voy respondiendo a los puntos como tú lo has puestos:

- Primero, uso el temporizador para contar los pulsos por TOCKI, no sé si te refieres a esto y la rutina de retardo lo hago mediante una de 250 ms.
- Segundo, ahora mismo paso de los displays y quiero mostrar en binario el número de pulsos contados en 250 ms y mostralos por la puerta B.
- Tercero, con esta subrutina creo que lo borro justamente antes de empezar la cuenta de los 250 ms

;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


Por ahora los demás punto los dejo en el aire, ya que hasta que no sea capaz de representar el número de pulsos en binario, no quiero seguir con lo demás, ya que antes hay que aprender a hacer lo más fácil y después lo más complicado, por lo menos para mí.


Te muestro el esquema, y perdona pero no puedo por ahora hacerlo en mejor calidad.

http://www.imaxenes.com/imagen/tacometro1wx01e5.bmp.html

Gracias y saludos.
« Última modificación: 15 de Agosto de 2006, 18:54:35 por Lorenzo »