TODOPIC
Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: laluchi en 04 de Diciembre de 2008, 21:06:07
-
Hola a todos! Les comento mi problema.
Estoy haciendo un proyecto con un PIC 16F627A en el que necesito enviar unos datos a la compu. Mi idea es hacer un programa en Visual C++ para leer los datos ingresados por Puerto paralelo. (Uso XP)
De programacion se lo basico, nada de objetos...
Como no se como hacer un programa, lo que hice fue manipular un codigo que encontre en la web, para poder lograr mi cometido.
Pero tengo un problema que me ha ocurrido varias veces que quise programar: Como necesito chequear constantemente el estado de los puertos, lo que se me ocurrio hacer es chequear el estado de ciertas entradas, luego manipular los datos a mi gusto, y luego un bucle para nuevamente volver a chequear los estados. El GRAN PROBLEMA que surge, es que me consume el 50% del micro. Con varios programas me paso esto. Se que habria que trabajar con interrupciones, tambien lei por algun lado que con W.XP hay problemas con el puerto paralelo.
Pero no se me ocurre nada!
Y la verdad que, si bien ahora me esta funcionando el programa, no me sirve que este consumiendo tanto micro, porque el sistema se vuelve inestable.
Asi que en sintesis... hago dos preguntas...
1-¿Alguien sabe como ayudarme teniendo en cuenta lo q acabo de decir? ¿que deberia hacer?
2- en su defecto, alguien conoce algun codigo de un programa q capture los datos del puerto paralelo, asi yo puedo manejarme desde ahi?
Muchisimas gracias!
-
Hola
¿Cada cuándo debes leer el estado del puerto paralelo de la pc?
Si lees el puerto, modificas un valor y luego vuelves a leer el puerto entonces Winxp le dará prioridad del 50% a tu programa (seguramente porque tienes procesador HT o procesador dual core :D).
Debes establecer un periodo de muestreo del puerto aceptable, como de 10ms. Algo menor a 5ms es difícil de conseguir en un sistema operativo que no es de tiempo real como winxp.
Luego entre lectura y lectura implementa una subrutina de tiempo de 10ms. Windows xp desocupará el procesador esos 10ms y le dará permiso a otras aplicaciones de trabajar mientras tu programa no lo necesita.
Yo hace tiempo hice un tutorial para manejo del puerto paralelo en vc++, aunque no con requerimientos de tiempos tan cortos. Puedes darle una checada como ayuda para ver otras formas de escribir puertos...
http://www.todopic.com.ar/foros/index.php?topic=11633.0
http://www.migsantiago.com/index.php?option=com_content&view=article&id=5&Itemid=6