programa int0, int1 int2 dspic30f4013

Upload: yousafvalderramaluna

Post on 05-Jul-2018

252 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/16/2019 Programa INT0, INT1 INT2 DSPIC30F4013

    1/4

     

    #include

    #include

    #include

    #include // ESTA LIBRERIA CONTIENE true

    #include "system.h" // TIENE K ESTAR ANTES K EL LIBPIC30 PORK ESTE TIENE LOS RETARDOS

    #include

    void INT0init(void); //(VOID)-> ESTA FUNCION QUE NO PERMITE ENTRADA DE ARGUMENTOS NI

    TAMPOCO RETORNA NADA //

    void __attribute__((interrupt, auto_psv)) _INT0Interrupt (void);

    void INT1init(void); //(VOID)-> ESTA FUNCION QUE NO PERMITE ENTRADA DE ARGUMENTOS NI

    TAMPOCO RETORNA NADA //

    void __attribute__((interrupt, auto_psv)) _INT1Interrupt (void);

    void INT2init(void); //(VOID)-> ESTA FUNCION QUE NO PERMITE ENTRADA DE ARGUMENTOS NI

    TAMPOCO RETORNA NADA //

    void __attribute__((interrupt, auto_psv)) _INT2Interrupt (void);

    unsigned char cont1,cont2,cont3;//creando variables, tambien es global pork esta afuera de todo

    //ALAN RODRIGUEZ QUISPE

    int main(int argc, char** argv) {

    ADPCFG=0x1FFF; //Puerto B en modo Digital

    TRISB=0x0000; // configuro todos los bits del puertob como salida digital

    TRISAbits.TRISA11=1 ;//llamo entrada int0

    TRISDbits.TRISD8=1;// entrada int1

    TRISDbits.TRISD9=1; // entrada int2

  • 8/16/2019 Programa INT0, INT1 INT2 DSPIC30F4013

    2/4

      INT0init();//llamo la funcion para que dentro de esta funcion se configure todo lo relacionado

    con la estructura externa

    INT1init();

    INT2init();

    cont1=0;

    cont2=0;

    cont3=0;

    while(true){// true valor 1

    /* Parpadeo de Leds, solo para comprobar

    * si esta funcionando el microcontrolador

    */

    LATBbits.LATB7=1;//pongo a 1

     __delay_ms(500);

    LATBbits.LATB7=0;//pongo a 0

     __delay_ms(500);

    }

    return (EXIT_SUCCESS);

    }

    void INT0init(void)// sera llamado por arriba

    {

    INTCON2bits.INT0EP=1 ; // Interrupción por flanco de bajada

    IPC0bits.INT0IP=6 ; // configuro prioridad //prioridad 6

    IFS0bits.INT0IF=0 ; // Borro el Flag // borra estado de la bandera

    IEC0bits.INT0IE=1 ; // Habilito las interrupciones

    }

  • 8/16/2019 Programa INT0, INT1 INT2 DSPIC30F4013

    3/4

     

    void __attribute__((interrupt, auto_psv)) _INT0Interrupt (void){//

    ++cont1;

    LATB=cont1 & 0x007F;// 0000 0000 0111 1111

    IFS0bits.INT0IF=0;//borrar el Flag;

    }

    //////////////////////////////////////////////////////////////////////////////////////

    void INT1init(void)// sera llamado por arriba

    {

    INTCON2bits.INT1EP=1 ; // Interrupción por flanco de bajada

    IPC4bits.INT1IP=4 ; // configuro prioridad //prioridad 6

    IFS1bits.INT1IF=0 ; // Borro el Flag // borra estado de la bandera

    IEC1bits.INT1IE=1 ; // Habilito las interrupciones

    }

    void __attribute__((interrupt, auto_psv)) _INT1Interrupt (void){//

    ++cont2;

    LATB=cont2 & 0x001F;// 0000 0000 0001 1111

    IFS1bits.INT1IF=0;//borrar el Flag;

    }

    //////////////////////////////////////////////////////////////////

    void INT2init(void)// sera llamado por arriba

    {

    INTCON2bits.INT2EP=1 ; // Interrupción por flanco de bajada

  • 8/16/2019 Programa INT0, INT1 INT2 DSPIC30F4013

    4/4

      IPC5bits.INT2IP=6 ; // configuro prioridad //prioridad 6

    IFS1bits.INT2IF=0 ; // Borro el Flag // borra estado de la bandera

    IEC1bits.INT2IE=1 ; // Habilito las interrupciones

    }

    void __attribute__((interrupt, auto_psv)) _INT2Interrupt (void){//

    ++cont3;

    LATB=cont3 & 0x0007;// 0000 0000 0000 0111

    IFS1bits.INT2IF=0;//borrar el Flag;¿

    }