TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: luisgorris en 26 de Abril de 2011, 17:58:10
-
Pues eso.
Creo que cuando el compilador informa con este warning, desactiva todas las interrupciones en el bloque de codigo de la interrupcion. Por ejemplo, en mi codigo hay dos: la RTCC y la EXT.
le dejo claro las prioridades:
#priority EXT,RTCC
supongamos que la RTCC tiene este codigo (una chorrada para que el compilador detecte el delay y desactive las interrupciones):
#int_rtcc
void inter_rtcc(void)
{
delay_ms(5);
}
Pues bien... no solo desactiva la RTCC sino que tambien desactiva la EXT. Se supone que deberia atender a la EXT incluso dentro de la ejecucion de la RTCC.
¿esto es posible?...quiero decir...¿puede atender a la EXT cuando se está ejecutando la RTCC ya que la primera tiene mayor prioridad?, ¿hay alguna manera de hacer que el compilador no las desactive? (si hay reentradas ya es problema mio).
por lo que he probado...DESACTIVA TODAS LAS INTERRUPCIONES!!!
espero vuestra ayuda.
mil gracias!
-
#priority EXT,RTCC solo le da prioridad a por que flag de interrupción preguntar primero. O sea, no es prioridad por vectorización, así que si ocurre la interrupción por RTCC y mientras se atiende esa interrupción ocurre la EXT, NO saltará a la rutina de EXT, sino que terminará y luego la tratará.
Saludos!
-
Hola luisgorris, dale una leida a lo que dice en esta página (http://www.ccsinfo.com/faq.php?page=delay_in_interrupt).
Saludos!
-
Gracias por tu fast respuesta!!!
lo probaré nada mas llegar a casa.
Este proyecto es bastante ambicioso y practicamente todo el hard. ya está definido. Ahora van apareciendo "estas chorradas software" que te parten por la mitad y si no las superas, te obligan a reestructurar gran parte del codigo.
Mil gracias de nuevo.
-
No se que micro usas, pero con un 18F podes habilitar las prioridades de las interrupciones (nada que ver con #priority), eso si CCS solo deja usar una de alta prioridad y no se porque :tongue:
Saludos!