Tengo un PIC18F46K22 y lo programo con el compilador XC8. Al final, tendré un sistema como una PC con stdiny stdout. Entonces, en el bucle principal, habrá una función que verificará si hay una nueva entrada. Si hay entrada, se llamará a una función en consecuencia. Así, por ejemplo cuando una A en la entrada stdin, el PIC se ejecutará una función como function_Alugar de function_Blo que se llama cuando una entrada de B.
Cuando el PIC termina con la función, quiero que la nueva entrada se envíe a la función. Entonces, al presionar A se abre el transmisor RS232, desde ese momento cada entrada se enviará a través de RS232. Al final, el proyecto es un editor de texto independiente. Entonces, al presionar A se abre el sistema de archivos, desde ese momento ya no está editando texto, sino mirando a través de una lista de archivos. Eso significa que presionar Arriba y Abajo significa algo diferente que en el entorno de edición de texto.
He pensado mucho sobre cómo programar esto en C. Lo pensé anoche y me gustaría saber si es posible y, de ser así, cómo. Lo que quiero hacer es:
- La
mainfunción llama a una función comofunction_A function_Acambia una variable globalfunction_addral puntero de dirección de la funciónin_function_A- A partir de ese momento,
mainllama a la funciónfunction_addrcuando hay una nueva entrada.
Entonces, lo que necesitaría es una mainfunción que verifique si function_addres cero. Si es así, se debe llamar a una función 'normal', como function_A. Si no es así, se function_addrdebe llamar a la función at . También necesito un function_Aque cambie el function_addrpuntero a in_function_A.
Nota: cuando la función del sistema de archivos debe cerrarse, is_function_Asolo debe cambiar function_addra 0.
Básicamente, mi pregunta es cómo puedo
- Obtener la dirección de una función (y almacenarla en una variable)
- Llamar a una función a una dirección especificada