Hola Mando31
Pues el uso de las interrupciones con el CCS es muy sencillo, lo que debes ver primero es cuales son las interrupciones permitidas en el archivo .h del dispositivo en cuestion. Luego, ya en el codigo las asignas con la directiva de compilador #int_xxx, donde xxx seria el nombre de la interrupcion a trabajar. Seguido a esto debes definir la funcion que va a realizar la interrupcion y, ya en el programa principal, se coloca la funcion enable_interrupts(xxx) seguido de enable_interrupts(GLOBAL) para habilitar las interrupciones.
Algo que aprendi aqui en este foro es que, dependiendo del programa, hay que salir lo mas rapido posible de la interrupcion.
Posteo el codigo para generar el parpadeo de un led, con el 16F84A con la interrupcion del Timer0.
#include<16F84A.h>
#fuses XT, NOWDT, PUT
const int8 _1sec = 244;
#define out pin_b0
#define on output_high
#define off output_low
int8 ints_t0 = 0;
#int_TIMER0
void timer_isr(void)
{
++ints_t0;
if(ints_t0>=_1sec)
{
ints_t0 = 0;
if(input_state(out))
off(out);
else
on(out);
}
}
void main (void)
{
setup_timer_0(RTCC_8_BIT | RTCC_INTERNAL | RTCC_DIV_16);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
off(out);
while(true)
{}
}
El procedimiento para trabajar con las demas interrupciones es el mismo. Lo que si debes saber es para que sirve cada una de las interrupciones a manejar, eso permite darles el mejor uso posible, y sigue las recomendaciones de stk500, busca primero y revisa la info antes de preguntar, eso permite que el foro sea ordenado.
Saludos.