• Domingo 28 de Abril de 2024, 06:29

Autor Tema:  At90s8515, Interrupciones (int0) En C  (Leído 1884 veces)

guileser

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
At90s8515, Interrupciones (int0) En C
« en: Miércoles 5 de Diciembre de 2007, 09:14 »
0
Hola a todos,

Estoy intentando desarrollar una aplicacion con un micro de atmel (AT90S8515) y lo primero que queria hacer es implementar un programa tonto en C para el control de la interrupciones externas en este caso la INT0, para saber como se manejan.Pero no hay manera de que funcione.
Escribo el codigo a ver si alguno de vosotros me puede decir que no es correcto por que yo ya no lo veo.El compilador que utilizo es el ICCAVR

#include <io8515.h>
#include <macros.h>
#pragma interrupt_handler int0_externa:2   // la interrupcion 2 corresponde a la int0

//********** Delay *************************************************
void  Delay(unsigned long a);
//**********Configuracion********************************************
void setup_system(void);
//-------------------------------------------------------------------------------------------
unsigned char counter=0;      // variable global

void main(void)
{
   
    setup_system();            // Configuro la interrupcion int0 y puerto C
    Delay(1000);
    while(1){
    PORTC=(0X55+counter);   // Bucle infinito
    Delay(1000);
    }
}

void int0_externa (void)      //funcion de la interrupcion
{
      counter++;
}

//------------------------------------------------------------------
void  Delay (unsigned long a)
{
    unsigned long b;
    for(b=0;b<a;b++){}
}
//--------------------------------------------------------------------
void setup_system()
{
    CLI();                      // Desactivo deteccion de interruption global SREG
    DDRC=0xFF;
    GIMSK|=0xc0;            // habilita la deteccion de la INT0
    MCUCR|=0x02;            // selecciona la INT0 para flanco de bajada
    SEI();                    //Activo deteccion de interrupcion global en SREG
   
}


No se si me esta fallando el software o el hardware.Por favor una mano ya me estoy volviendo un poco loco.

Gracias por adelantado

guileser

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: At90s8515, Interrupciones (int0) En C
« Respuesta #1 en: Miércoles 5 de Diciembre de 2007, 19:12 »
0
me contesto a mi mismo. El programa funciona perfectamente,solo que tenia mal configurado el ICCAVR

saludos