Autor Tema: funcion COUNT, problema con funcionamiento  (Leído 2430 veces)

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

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
funcion COUNT, problema con funcionamiento
« en: 26 de Enero de 2013, 11:32:50 »
Buenas tardes comunidad, estoy con un problema, estoy tratando de contar los pulsos de una señal pero no tengo exito (todo simulado en proteus) estoy tratando de hacer un contador de RPM simple, con leds, empece con 6 etapas a ver si podia identificar la señal de entrada. Ahora la rutina para encender los leds funciona genial con los numeros enteros, la probe sin usar el count, ahora cuando pongo el count no lee nada.

Encontre este post

http://todopic.mforos.com/8826/2306961-tacometro-digital-para-autos/

El problema del muchacho era el atraso del programa al contar, algo que a mi no me afecta, pero el post no me aclaro nada.

mi programa es el siguiente, es muy simple y la programacion es muy cruda, todavia no entre en la etapa de ahorrar lineas o usar el apagado de ports en una sola linea, porque primero quiero ver si funciona.

'contador
define Osc 10
input porta.0
low portb.0
low portb.1
low portb.2
A var byte
B var byte
inicio:
count porta.0,100,a
let b = a*10
if b <= 5 then goto etapa1
if b <= 6 then goto etapa2
if b <= 8 then goto etapa3
if b <= 10 then goto etapa4
if b <= 15 then goto etapa5
if b <= 30 then goto etapa6
goto inicio
etapa1:
low portb.2
low portb.3
low portb.4
low portb.5
low portb.6
low portb.7
high portb.1
goto inicio
etapa2:
low portb.1
low portb.3
low portb.4
low portb.5
low portb.6
low portb.7
high portb.2
goto inicio
etapa3:
low portb.2
low portb.1
low portb.4
low portb.5
low portb.6
low portb.7
high portb.3
goto inicio
etapa4:
low portb.2
low portb.3
low portb.1
low portb.5
low portb.6
low portb.7
high portb.4
goto inicio
etapa5:
low portb.2
low portb.3
low portb.4
low portb.1
low portb.6
low portb.7
high portb.5
goto inicio
etapa6:
low portb.2
low portb.3
low portb.4
low portb.5
low portb.1
low portb.7
high portb.6
goto inicio
end


cuando lo pongo en el proteus con el generado de señal no lee nada.

la señal la multiplico por 10, porque sino los hertz se ma van a 0,ect entonces para que sean numeros enteros multiplico aun asi sigo sin exito.

Si alguno me da una mano estaria muy feliz

Desconectado NORTEÑO

  • PIC10
  • *
  • Mensajes: 32
Re: funcion COUNT, problema con funcionamiento
« Respuesta #1 en: 26 de Enero de 2013, 12:26:38 »
Que valor tiene a en la funcion COUNT.       No le pusiste valor ni esta definida.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: funcion COUNT, problema con funcionamiento
« Respuesta #2 en: 26 de Enero de 2013, 13:21:41 »
Que valor tiene a en la funcion COUNT.       No le pusiste valor ni esta definida.

esta debajo de la etiqueta inicio

puse esto


count porta.0,100,a

¿que seria el valor y la definicion?

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: funcion COUNT, problema con funcionamiento
« Respuesta #3 en: 26 de Enero de 2013, 15:15:21 »
hola amigo me podrias desir que hace tu circuio? o cual se supone que quiere que sea el funcionamiento del mismo te dejo un ejemplo que implemente y monte y me sirvio para contar los pulsos entrantes a un pin y lo desplegue en un lcd este programa lo monte en un pic y demas todo fisico y si funciona espero te ayude un poco en tus dudas
saludos


Define SIMULATION_WAITMS_VALUE = 1  'solo para simulacion
AllDigital  'todos digitales
TRISA = %000001  'configuro el puerto a pin 0 como entrada
Define LCD_BITS = 4  'comunicacion del lcd de 4 bits
Define LCD_DREG = PORTB  'y se conectara en el puerto b
Define LCD_DBIT = 4  'con los 4 bit altos (4,5,6,7)
Define LCD_RSREG = PORTB  'el pin rs sera puesto en el puerto b
Define LCD_RSBIT = 0  'el pin sero sera rs de dicho puerto
Define LCD_EREG = PORTB  'el pin e sera puesto en el puerto b
Define LCD_EBIT = 2  'en el pin numero 2 de dicho puerto
Define LCD_RWREG = PORTB  'el pin r/w sera puiesto en el puerto b
Define LCD_RWBIT = 1  'pin 1 del puerto b para r/w
Lcdinit 2  'inicializo el lcd con el pulsor parpadeando

Dim i As Byte  'declaro una variable de tipo byte
Define COUNT_MODE = 1  'inicializo el contador
Lcdout "   FRECUENCIA   "  'cargo el texto en el primer renglon del lcd
Lcdcmdout LcdLine2Home  'salto al 2 renglon del lcd

inicio:

Lcdcmdout LcdLine2Home  'salto al 2 renglon del lcd
Count RA.0, 1000, i  'cuento lo pulsos que yegan a ra.0,durante 1s y los guardo en la variable i
Lcdcmdout LcdLine2Pos(5)  'salto ala posicion 5 del 2 renglon (esta opcion depende del usario la puedes quitar y no pasa nada solo el texto estara en el primer renglon)
Lcdout #i, " Hz "  'despliego a pantalla el valor de i y enseguida saco el texto hz
WaitMs 300  'un retardo para visualizar el contenido del lcd
Goto inicio

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: funcion COUNT, problema con funcionamiento
« Respuesta #4 en: 26 de Enero de 2013, 18:08:46 »
gracias rock, me quedo clarisimo y lo solucione con tu idea de usar un lcd, mil gracias!!!

al final el problema es que no coinicida los parametros del proteus con el real que me muestra el lcd, por eso nunca iba a poder identificar nada

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: funcion COUNT, problema con funcionamiento
« Respuesta #5 en: 26 de Enero de 2013, 23:40:08 »
hola amigo  jorgenuviola me da gusto poderte ayudar un poco en tus dudas
saludos