elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Pulsos rapidisimos al puerto paralelo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pulsos rapidisimos al puerto paralelo  (Leído 5,578 veces)
SOMBRIO

Desconectado Desconectado

Mensajes: 133



Ver Perfil
Pulsos rapidisimos al puerto paralelo
« en: 7 Enero 2010, 19:10 pm »

Hola El tema del que les quiero hablar es para los que usamos el puerto lpt en vb6 y queremos leer datos desde el statusport con la libreria inpout32.dll

El problema con el que me tope es que lee super facil
statusport = Inp(&H379)

y esto lo leemos cada intervalo de tiempo con el timer puesto en cierto intervalo
timer1.interval= 50 o 80 o 100 o 20 diferentes valores

pero esto falla cuando leeemos valores enviados rapidisimo por ejemplo un pagador de monedas las revoluciones de un motor etc..

falla por que cuando vuelve a leer el statusport este ya cambio y volvio a la normalidad es decir yo quiero leer unos 1  y mi aparato a medir motor ya mando un 101 en lo que mi timer salto en ese intervalo y leyo un solo 1

o bien el segundo caso el motor trabajo mas lento y el timer ya leyo 3 intervalos y este motor solo esta en 1/16 del giro si en ese 16 de giro prende o acciona algo y mi pc debe leer cada que lo acciona otra vez falla por que el timer lee 3 lineas marcando que ya dio 3 tres unos "1" o dos o 4 etc.. y el motor no ha dado ni un 1 esta en 00000000

no se si me explique pero quien haya tenido este problema me entendera a la perfeccion

lo ideal para resolver esto seria que el statusport solo cambiara cuando cmabia su lectura sin hacer intervalos de tiempo para leerlo
 
Bueno pues para resolverlo se me ocurrio algo la verdad muy facil con el mismo timer este solo debe cambiar una vez que lea un cambio total de 360 grados es decir un 0 y un 1 y no solo un 1 o un 0 como es acostumbrado

ejemplo de mi programa usando un etado de lectura de 11101
f variable usada para crear contador
accion prender apagar algo despues de que de x giros en los que mi programa decide despues de cada que tanto intervalo de giro de 360 grados del motor acciono algo
formload()
Out &H378, 15 "mitad corriente mitad tierra ideal para un transistor y un rele"
timer1.interval=20 "emasiado pequeño como para que se le vaya algo"

timer1_timer()
statusport = Inp(&H379)
If (statusport = 143) And d = 0 Then
d = d + 1
End If

""ahi ley 0001

If (statusport = 111) And d > 0 Then "111 es decimal binario es 11101"
t = 1
f = (f - t)
If f > 0 Then
Label1.Caption = (f)
d = 0
Else
Out &H378, 255
WindowsMediaPlayer1.URL = "C:\e.mid"
Label1.Caption = "0"
Picture9.Visible = False
d = 0
End If
End If


solo se activo si dio el cambio completo

Se los dejo y si algun dia chocan con este problema les sea de ayuda ya que a mi me funciono

La idea principal es reducir el intervalo del timer muy pequeño y solo leer el dato despues de que haya sido totalmente cambiado

por ejemplo
10
110
001
01

0001
1110

leo el valor hasta que este cambia
Saludos


En línea

IRQL less or equal
ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Pulsos rapidisimos al puerto paralelo
« Respuesta #1 en: 7 Enero 2010, 19:18 pm »

Joder, yo hubiera pensado en hacerlo por hardware, como los teclados que tienen un minicache de puro hardware que manda las órdenes pendientes en órden. Pero obviamente tu método es mucho mejor, más barato y no lo se, pero posiblemente más ligero.


En línea

SOMBRIO

Desconectado Desconectado

Mensajes: 133



Ver Perfil
Re: Pulsos rapidisimos al puerto paralelo
« Respuesta #2 en: 7 Enero 2010, 19:21 pm »

si se reduce mucho el costo yo tambien pense en montarle un pic y que este mandara los pulsos mas lentos y constantes para que la pc los pudiera leer pero el solo hecho de meter el pic ya es un incremento de tiempo trabajo esfuerzo y mas tosco

Saldudos amigo
En línea

IRQL less or equal
Meta


Desconectado Desconectado

Mensajes: 3.263



Ver Perfil WWW
Re: Pulsos rapidisimos al puerto paralelo
« Respuesta #3 en: 8 Enero 2010, 01:05 am »

Que curioso, estoy creando ahora mismo una interfaz para controlar el puerto paralelo con Visual C#. Cuando acabe, lo haré uno para Visual C++ y el otro para Visual Basic .net


En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
SOMBRIO

Desconectado Desconectado

Mensajes: 133



Ver Perfil
Re: Pulsos rapidisimos al puerto paralelo
« Respuesta #4 en: 9 Enero 2010, 03:29 am »

Se ve muy coqueto tu programa pero solo escribe ? o tambien lee datos ?

tengo una aplicacion llamada vbtoconverter totalmente parcheado y pasa muy bien de un lenguaje a otro si lo necesitas para tu proyecto te lo paso avisame

voy a poner unas fotos de el sistema terminado para que veas el motor que use en mi proyecto y el uso que tiene use un fototransistor para conocer el intervalo
del giro del motor en el que se encuentra

Saludos amigo 
En línea

IRQL less or equal
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
los pulsos digitales
Electrónica
romancero 3 7,254 Último mensaje 7 Diciembre 2010, 03:11 am
por romancero
Enviar pulsos por usb linux
GNU/Linux
_niu 1 2,385 Último mensaje 14 Octubre 2011, 00:37 am
por Foxy Rider
TMR0 como contador por pulsos (P16F628A)
ASM
danissj 0 520 Último mensaje 28 Septiembre 2018, 00:16 am
por danissj
Puerto serial RS232 C# lectura de Pulsos
Programación General
_vicho_ 1 615 Último mensaje 19 Noviembre 2018, 14:06 pm
por rub'n
Señal generada por micrófono convertir a tren de pulsos!
Electrónica
01munrra 0 716 Último mensaje 19 Marzo 2019, 00:24 am
por 01munrra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines