#include <msp430fr6989.h>
|
|
|
|
|
|
char lec=0;
|
|
int cont1=0,cont2=0,cont3=0,cont4=0;
|
|
void main(void)
|
|
{
|
|
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
|
|
PM5CTL0 = 0x0000;// DESACTIVAR EL MODO DE ALTA IMPEDANCIA
|
|
|
|
/*Confg. de perifericos */
|
|
P1SEL0 = 0x00;
|
|
P1SEL1 = 0x00; //SELECCIONAMOS FUNCION COMO I/O DIGITAL
|
|
P1DIR = 0x01; //P1.0-> SALIDA P1.1-P1.7-> ENTRADAS
|
|
P1REN = 0xFE;
|
|
P1OUT = 0xFE;
|
|
P1IE = 0x7E;
|
|
P1IES = 0x00;
|
|
P1IFG = 0x00;
|
|
|
|
P9SEL0 = 0x00;
|
|
P9SEL1 = 0x00; //SELECCIONAMOS FUNCION COMO I/O DIGITAL
|
|
P9DIR = 0x80; //P9.7-> SALIDA P9.0-P9.6->ENTRADAS
|
|
P9REN = 0x7f;
|
|
P9OUT = 0x00;
|
|
|
|
__enable_interrupt(); //también se puede usar _enable_interrupts()
|
|
|
|
for(;;)
|
|
{
|
|
|
|
|
|
}//loop
|
|
}//main
|
|
|
|
//**************Interruptions**************
|
|
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
|
|
#pragma vector=PORT1_VECTOR
|
|
__interrupt void inter_puerto1(void)
|
|
#elif defined(__GNUC__)
|
|
void __attribute__ ((interrupt(PORT1_VECTOR))) PORT1_ISR (void)
|
|
#else
|
|
#error Compiler not supported!
|
|
#endif
|
|
{
|
|
|
|
lec=P1IFG;
|
|
lec &= BIT3;
|
|
__delay_cycles(250);
|
|
if( P1IFG == BIT3){
|
|
cont1++;
|
|
P1OUT ^= 0x01;
|
|
}
|
|
|
|
lec &= BIT4;
|
|
__delay_cycles(250);
|
|
if( P1IFG == BIT4){
|
|
cont2++;
|
|
P9OUT ^= 0x80;
|
|
}
|
|
|
|
lec &= BIT5;
|
|
__delay_cycles(250);
|
|
if( P1IFG == BIT5){
|
|
cont3++;
|
|
P1OUT ^= 0x01;
|
|
}
|
|
|
|
lec &= BIT6;
|
|
__delay_cycles(250);
|
|
if( P1IFG == BIT6){
|
|
cont4++;
|
|
P9OUT ^= 0x80;
|
|
}
|
|
|
|
P1IFG=0x00;
|
|
}
|
|
|