programa int0, int1 int2 dspic30f4013
Post on 05-Jul-2018
253 Views
Preview:
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;¿
}
top related