Inicio de programa
Publicado por Willow (1 intervención) el 28/10/2005 13:32:47
Hola, estoy desarrollando una importante aplicación pero tengo algunas dudas o errores de principiante.
Estoy trabajando con el microprocesador XC167CI de Infineon. Se trata de un potente micro que se utiliza en la industria del automovil. Aunque mi proyecto es ajeno a ese mundo sí que necesito un importante micro para la realización de mi proyecto.
Este micro de 144 pines y 11 temporizadores es el que mejor se ajustaba al número de entradas y salidas de mi proyecto y al número de mediciones de tiempo que requiere.
Pero tengo dudas y errores, como he comentado al ppo sobre el uso de un microprocesador. Estoy desarrollando toda la lógica en C y estoy utilzando el programa KEIL microvision. La herramienta en sí es bastante buena.
Al grano, en mi programa principal MAIN.C aparece un while (1) {} Pienso que esta parte de código es lo que en ensamblador se traduciría en una escucha continua del micro sobre las distintas entradas. De hecho ahí está mi problema.
El potente micro que utilizo tiene una serie de entradas denominadas como Interrupciones Rápidas (Fast Interruptions) y he llegado a utilizarlas todas, por lo que mi problema se "reduce" en tratar aquellas otras entradas que no puedo conectar a las Fast Interruptions.
Si en mi programa principal, dentro del bucle while pongo una condición como por ejemplo
if (P3_P0) {
miFuncion()
}
Es decir, en el momento que mi entrada 0 del puerto 3 esté activa pues realizo una llamada a miFuncion. Pero evidentemente esta llamada se ejecuta continuamente. Y esto es lo que trato de evitar. Sé que puedo inhibir esa llamadas con unos "flags" o semáforos, pero no dispongo de ejemplos para ello.
Quien me pueda orientar sobre el tema le estaría muy agradecido.
Un saludo.
Estoy trabajando con el microprocesador XC167CI de Infineon. Se trata de un potente micro que se utiliza en la industria del automovil. Aunque mi proyecto es ajeno a ese mundo sí que necesito un importante micro para la realización de mi proyecto.
Este micro de 144 pines y 11 temporizadores es el que mejor se ajustaba al número de entradas y salidas de mi proyecto y al número de mediciones de tiempo que requiere.
Pero tengo dudas y errores, como he comentado al ppo sobre el uso de un microprocesador. Estoy desarrollando toda la lógica en C y estoy utilzando el programa KEIL microvision. La herramienta en sí es bastante buena.
Al grano, en mi programa principal MAIN.C aparece un while (1) {} Pienso que esta parte de código es lo que en ensamblador se traduciría en una escucha continua del micro sobre las distintas entradas. De hecho ahí está mi problema.
El potente micro que utilizo tiene una serie de entradas denominadas como Interrupciones Rápidas (Fast Interruptions) y he llegado a utilizarlas todas, por lo que mi problema se "reduce" en tratar aquellas otras entradas que no puedo conectar a las Fast Interruptions.
Si en mi programa principal, dentro del bucle while pongo una condición como por ejemplo
if (P3_P0) {
miFuncion()
}
Es decir, en el momento que mi entrada 0 del puerto 3 esté activa pues realizo una llamada a miFuncion. Pero evidentemente esta llamada se ejecuta continuamente. Y esto es lo que trato de evitar. Sé que puedo inhibir esa llamadas con unos "flags" o semáforos, pero no dispongo de ejemplos para ello.
Quien me pueda orientar sobre el tema le estaría muy agradecido.
Un saludo.
Valora esta pregunta


0