Autor Tema: Ayuda con Multiplexado  (Leído 1790 veces)

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

Desconectado Alejandra

  • PIC10
  • *
  • Mensajes: 9
Ayuda con Multiplexado
« en: 16 de Junio de 2006, 09:27:14 »
Hola amigos,

Soy nueva en el foro y hace varios dias lo consulto y es excelente la forma en que todos se colaboran entre si, el motivo de mi post es porque quiero hacer un contador de pulsos con 3 displays y que por el puerto rb0 entren dichos pulsos y poder visualizarlos. Se que debo multiplexar los tres displays para poder ver el conteo pero no estoy muy ubicada de como debo hacerlo.

Me pueden dar una idea de como hacerlo?, un ejemplillo o algo parecido para ir "calentando turbinas" en este lenguaje.

De antemano muchas gracias.

Saludos

Aleja :g) :D
« Última modificación: 16 de Junio de 2006, 09:30:23 por Alejandra »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Ayuda con Multiplexado
« Respuesta #1 en: 16 de Junio de 2006, 11:11:11 »
Hola:

Para el conteo te puede servir la funcion COUNT:

Código: [Seleccionar]
COUNT Pin,Period,Var

Count the number of pulses that occur on Pin during the Period and stores the result in Var. Pin is automatically made an input. Pin may be a constant, 0-15, or a variable that contains a number 0-15 (e.g. B0) or a pin name (e.g. PORTA.0).
The resolution of Period is in milliseconds. It tracks the oscillator frequency based on the DEFINEd OSC.

COUNT checks the state of Pin in a tight loop and counts the low to high transitions. With a 4MHz oscillator it checks the pin state every 20us. With a 20MHz oscillator it checks the pin state every 4us. From this, it can be determined that the highest frequency of pulses that can be counted is 25KHz with a 4MHz oscillator and 125KHz with a 20MHz oscillator if the frequency has a 50% duty cycle (the high time is the same as the low time).

Example

' Count # of pulses on Pin1 in 100 milliseconds
COUNT PORTB.1, 100, W1


como tienes almacenado el valor de los pulsos en una variable, luego puedes utilizar la funcion DIG, para ir mostrando digito a digito en los displays:

Código: [Seleccionar]
DIG returns the value of a decimal digit. Simply tell it the digit number (0 - 4 with 0 being the rightmost digit) you would like the value of, and voila.

Example

B0 = 123 ' Set B0 to 123
B1 = B0 DIG 1 ' Sets B1 to 2 (digit 1 of 123)

Como veras, la funcion DIG puede coger solamente un numero del digito, haciendote muy sencillo el trabajo que quieres hacer, solo tendrias que utilizar COUNT para contar los pulsos por el pin que quieres y DIG para tomar cada uno de los digitos de la variable y lo asignas al puerto por donde enviaras los datos.

Suerte...! cualquier cosa me dices, aunque te podre ayudar con algo mas hasta el domingo  :(

Desconectado Alejandra

  • PIC10
  • *
  • Mensajes: 9
Re: Ayuda con Multiplexado
« Respuesta #2 en: 19 de Junio de 2006, 12:17:53 »
Hola señor Lord,

Gracias por su respuesta pero puede darme por favor un ejemplo de como hacerlo al menos con 2 displays y creo que con eso ya podria implemtarlo para los 3 displays.

Gracias por su ayuda.

Alejandra :g)
« Última modificación: 19 de Junio de 2006, 12:42:40 por LordLafebre »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Ayuda con Multiplexado
« Respuesta #3 en: 19 de Junio de 2006, 12:57:50 »
Hola:

en la tarde subire un ejemplo en el tema de ejemplos en pbp.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Ayuda con Multiplexado
« Respuesta #4 en: 19 de Junio de 2006, 18:43:39 »
Hola:

mira aqui:

http://www.todopic.com.ar/foros/index.php?topic=3613.60

ya he puesto dos ejemplos con formas distintas de hacer un contador en 4 displays multiplexados, culaquier cosa la comentas por aqui.  :mrgreen:


 

anything