Tengo una pregunta a la que creo que la respuesta es bastante simple. Pero no he podido encontrar una respuesta directa a.
Si tengo esta rutina de servicio en algún módulo foo.c
#pragma vector = SOME_VECTOR
interrupt void fooISR(){
dosomething;
IFG = 0;
}
si tengo en mi principal.
#include "foo.h"
Entonces, parece que fooISR()
sí se carga en el SOME_VECTOR y el ISR se activará cada vez que se establezca el IFG correspondiente.
Quería preguntar si esta es la forma correcta de escribir módulos que utilicen interrupciones. Porque con este enfoque, el fooISR()
estará en el SOME_VECTOR siempre que incluya foo.h, esto no permite mucha configuración para la persona que trabaja en main.
Por ejemplo, si en main.c
quisiera acceder a alguna funcionalidad de foo.c pero quisiera escribir un ISR separado para SOME_VECTOR, no tendría suerte con este método, ¿no?