Autor Tema: Help con interrupciones  (Leído 1908 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Mando31

  • PIC10
  • *
  • Mensajes: 32
Help con interrupciones
« en: 25 de Mayo de 2008, 01:10:09 »
Hola picmaniacos pues llevo unos cuantos meses en este maravilloso mundo de los microcontroladores pic y pues he hecho varios proyectillos, pero como el profesor que tenemos que nos da la materia de microcontroladores la verdad no sabe nada pues queria optimizar un poco más mis programas y mejorar mis proyectos pero estabes utilizando las interrupciones y pues queria ver si alguien me pudiese ayudar a saber como programarlas utilizando ccs :mrgreen:

pues les agradesco que se tomen el tiempo tanto en leerlo como en responder todos los comentarios son bien recibidos GRACIAS.
   :D
 


Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Help con interrupciones
« Respuesta #1 en: 25 de Mayo de 2008, 03:04:43 »
Hola Mando31 Bienvenido al Foro , te pido por favor que lea la reglas del Foros y use el buscador y si programa en C busca informacion alli.
es tan Dificl usar el Buscador del Foro??? tu mensaje no va aqui osea que lo mas seguro te lo Borre un Morador
 aqui tiene las Reglas del foro http://www.todopic.com.ar/foros/index.php?action=globalAnnouncements;id=1
Saludo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Help con interrupciones
« Respuesta #2 en: 25 de Mayo de 2008, 17:18:30 »
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.
Código: [Seleccionar]
#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.
El papel lo aguanta todo

Desconectado Mando31

  • PIC10
  • *
  • Mensajes: 32
Re: Help con interrupciones
« Respuesta #3 en: 25 de Mayo de 2008, 19:49:57 »
Muchas garcias MLO y seguiere sus sugerencias