| 
						
						
						
					 | 
				
				 | 
				
					@ -0,0 +1,78 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#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; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 |