TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: quirogaareal en 14 de Julio de 2006, 08:45:47
-
Hola Gente 8):
Quiesira saber como hago el uso de mas de una interrupcion si que se molesten y funcionen correctamente.
Ya hice un medidor de presion digital . pero estaba programado con una sola interrupcion tmr0. Como haria si para otro proyecto necesitar una interrupcion tmro , tmr1 , rs232 y una interrupcion por un cambio de estado en un pin de el puerto c, suponiendo que este usando un 16f876. :-/
-
Hola, esta seria la forma de implementar la interrupcion del timer0 y de la externa.
Si quisieras poner mas solo tienes que poner: #INT_ seguido del nombre de la interrupcion, que te viene en el CCS en devices, y abriendo el del pic que uses.
#INT_TIMER0
void tempo()
{
}
/*************************************/
#INT_EXT
void CrucePor0()
{
}
/**************************************/
Despues en el main tendrias que poner esto:
enable_interrupts (INT_TIMER0); //Activa interrupción Timer0.
enable_interrupts (INT_EXT);
enable_interrupts (GLOBAL);
Espero te serte de ayuda.
-
Para generar interrupciones rapidas puedes tratar en PCW lo que es el Wizard ahi puedes generar una base de para tu codigo .
Solo es cuestion de que selecciones el dispositivo asi como los fuses ya moviendote en las etiquetas de abajo puedes generar codigo de forma rapida.
Pantera
:-)
-
Hola Muchachos :
Agradezco sus respuestas. Si he usado el wizard de ccs. En realidad ecesito saber por ejemplo como hago que si esta corriendo un programa (cualquiera sea ) y yo presion un puldador en el puerto C ( pic16f876 ) me provoque esto una interrupcion y al terminar las tareas salga de dicha interrupcion. luego si yo le envio algo desde la pc ..a travez de rs232 provoque esto una interrupcion y al terminar las tareas salga de dicha interrupcion. y finalmente que pueda usar la del timer0 / 1 , para algun otro fin.
Gracias micro_pepe y pantera por su ayuda