[ Foro de Pascal ]
Hola soy nuevo en este foro, soy estudiante de informática y en mi materia de Programación me han dado como proyecto realizar un semáforo, que consta de dos fases, la primera era solo digital, o sea, el semáforo solo tenía que aparecer en pantalla, esta parte ya la he realizado y entregado en la cual cual saque excelente calificación. Ahora para la segunda fase tengo que realizarlo en físico y conectarlo mediante puerto paralelo o serie, también podría ser mediante USB pero creo q seria mucho más difícil. Mi problema se presenta ahora esq no encuentro una función, procedimiento o biblioteca que me permita acceder al puerto en Free Pascal, con Turbo Pascal si se cómo se podría hacer, pero necesito hacerlo en Free si pudieran ayudarme por favor se los agradecería mucho...
No te garantizo que puedas conseguirlo. Si usas FreePascal, será porque estás con algún sistema operativo moderno, como Windows, Mac OS o Linux, y la mayoría de esos sistemas te "ocultan" el acceso a los puertos, de modo que no puedes acceder a ellos directamente.
Es más, en FreePascal ni siquiera existe la "Unit Printer" que tenía Turbo Pascal y que te permitía mandar texto a la impresora; en sistemas modernos se suele dar por sentado que la impresora es un dispositivo gráfico, y que puedes dibujar en ella... mediante los drivers del sistema operativo. Aquí tienes un ejemplo que te habla de la unidad "printer" de FreePascal, que permite acceder al "canvas" de la impresora para dibujar en ella:
http://wiki.freepascal.org/Using_the_printer
Para acceder a nivel de hardware, puedes intentar usar órdenes "port" o "out", pero son dependientes del sistema operativo y pueden incluso estar bloqueadas por los permisos de usuarios del sistema operativo. Tienes más información sobre su implementación en Free Pascal (que no es especialmente sencilla) aquí:
http://wiki.freepascal.org/Hardware_Access/es
En mi opinión, la solución más simple, si se trata sólo de un proyecto puntual, es hacerte durante unos días con un ordenador antiguo con MsDos y hacerlo desde Turbo Pascal.
La alternativa "moderna" es usar un microcontrolador u ordenador que sí te permita acceso directo a puertos, como un Arduino (que deberías programar en C, pero es sencillo) o un Raspberry Pi (para el que hay bibliotecas de entrada/salida en Python). Pero me parece "rizar el rizo" demasiado para una asignatura de introducción:
http://arduino.cc/en/Tutorial/blink
http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpio-and-python
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)