SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Drache en Martes 24 de Octubre de 2006, 08:18
-
Hola, he logrado programar el orden de encendido de unos leds mediante el puerto paralelo, controlando el tiempo que duran encendidos, asi como la combinacion con la que se hace, sin embargo el codigo o la "programacion" con la que se encieden y se apagan es fijo cuando compilo el programa.
Me gustaria hacer algo, para que en tiempo de ejecucion poder "programar" el encendido de los leds.
Es decir, que yo ponga un par de lineas en algun memo, y poder "decifrar" lo que dice, y asi con algun algoritmo complejo ejecutar esas lineas.
algo como: LED1 ON
al escribir eso en el memo en una linea que encienda el LED 1, nose, ¿pueden ayudarme? ¿alguna sugerencia?
-
Lo que quieres hacer es un parser o procesador de lenguaje, lo cual es bastante difícil (en la universidad de informática de Cádiz se da en tercer curso). Aún así si te animas te recomiendo que te acerques a Flex y Bison, que son dos de las mejores heramientas para este fin.
Aunque siempre lo puedes hacer a mano...
-
Aqui puse algo de un analizador usando flex:
http://foros.solocodigo.com/index.php?showtopic=23643&hl= (http://foros.solocodigo.com/index.php?showtopic=23643&hl=)
-
Dale una revisada a esta discucion
Discusion Leds (http://foros.solocodigo.com/index.php?showtopic=24269)
-
Gracias a todos por sus respuestas, las he leido a detalle.
Vatoicc, en el link que me pasastes, hay un codigo para hacer exactamente lo inverso de lo que quiero, es decir, a partir de algo escrito en el memo, realizar algun comando, como cambiar de color algun shape.
Creo que buscare por ahi, porque lo otro me parece muy complicado :blink:
y lo cierto es que yo no estudie ni computacion, ni electronica, soy estudiante de mecánica :smartass: .. entiendo poco de c++ pero lo suficiente para hacer programillas sencillos, ¿alguien sabe como leer renglon por renglon en un memo?
si en algun renglon pusieron por ejemplo :
LED 1 ON
haria algo tipo condicional, (claro tendria que ser un codigo muy largo, pero como mencione antes por mi perfil no hago lo mas eficaz, sino lo que funcione:P)
es decir,
if (memo1->Lines->GetText(renglon x )==LED 1 ON )
LED 1->Color = red ;
-
Bueno, yo te proponia una idea mas para tu codigo.
Una vez en la escuela, nos dejaron de proyecto una maquina virtual, teniamos que hacer un programa que emulara el CPU con todos sus registros la RAM y la ROM para el codigo de programa, hecho con un ensamblador que nosotros teniamos que inventar.
Y hacer otro programa que ensamblara, es decir, escribir un codigo fuente en nuestro lenguaje ensamblador, y que lo ensamblara para crear el archivo .obj
Que es lo que tu pretendes hacer.
Pero la verdad estubo muy complicado y laborioso, no tenia ninguna utilidad practica, pero si fue demasiado didactico.
Lo mas facil que puedes hacer es tener un codigo demasiado estricto, para que tus condiciones sean sencillas.
Que es lo que quieres hacer? por que parece como si quicieras hacer un PLC o algo asi...
Por que te podria pasar mi maquina virtual, pero la verdad, a estas fechas ni yo le entiendo a lo que hice :rolleyes:
-
jejeje lo que quiero hacer, es poder programar un robot, por medio del puerto paralelo.
ya tengo los conocimientos de como programar de manera fija una serie de funciones, pero no he logrado, que una vez compilado se pueda programar segun las necesidades.
de otro modo tendria que compilar un nuevo programa con otro código para cambiar los movimientos.....
por eso, quisiera que se pueda programar desde un memo, algo sencillo, simplemente que se pueda leer linea por linea, pero como lo dije antes yo soy estudiante de Ing. mecánica, y lo que he aprendido de programacion es por leer tutoriales y foros :D
en la ayuda del builder no he encontrado lo que busco, por eso acudi aqui, pero me dieron opciones demasiado avanzadas para mi :unsure:
pero bueno, seguire intentando en mis ratos libres, gracias :hola:
-
Aqui te va un programa sencillo, para ver si te sirbe...
Espero que si, y luego me cuentas como te fue
-
UfffFFFfFFfffff es genial.
es exactamente lo que estaba buscando,
if( Memo1->Lines->Strings == Button3->Caption )
esta linea resume lo que buscaba, gracias Vatoicc, en verdad me has brindado una gran ayuda, ya puedo "programar" el orden de los movimientos sin necesidad de volver a compilar :P
bueno, por ahora trabajare con este material.
Un saludo