Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*****************************************************************************************
- P3.1
- Durante el tiempo que indique estara encendido el ledç
- La gestión de los pulsadores se realiza por sondeo.
- Los LEDs están asociados a los pines P2.4, P2.5, P2.6, y P2.7, y se encienden con un "1" lógico.
- Los pulsadores están asociados a los pines P1.4, P2.1, P2.2, y P2.3, y al pulsarse transmiten un "0" lógico.
- AUTORES: Ismael Aguilera Cervera y Pablo Sánchez Serrano
- ****************************************************************************************/
- #include <msp430.h>
- int main(void)
- {
- unsigned char s3_ant, s4_ant, s5_ant, s6_ant;
- WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
- //Led 3
- //P1DIR &= ~(BIT4); //P1 entrada (Pulsador)
- //P1REN |= (BIT4); //Habilita resistencia (Pulsador)
- P2DIR |= (BIT4); //Salida (Led)
- //P1OUT |= (BIT4); //Resistencia de Pullup (Pulsador)
- s3_ant=s4_ant=s5_ant=s6_ant=0;
- //Configuracion timer
- TA1CTL= TASSEL_2 | ID_0 | MC_0 | TACLR; //Configuramos en TASSEL_2 -> SMLK // ID_3 = 11 (Division /8) // MC_1 Modo ascendente // TACLR
- TA1CCR0 = 0x04E1; // t = (Valor TACCR0 +1)/FrecRelojTimer // Hacemos esa cuenta pero el 1 lo restamos en hexadecimal pq esa cuenta /8 y lo pasas a hexadecimal y le restas uno
- //Configurar onda PWM (Zumbador)
- //P2DIR |= (BIT0);
- P2SEL |= (BIT0);
- P2SEL2 &= ~(BIT0);
- //Zumbador y pulsador
- P1DIR &= ~(BIT4); //P1 entrada (Pulsador)
- P1REN |= (BIT4); //Habilita resistencia (Pulsador)
- P2DIR |= (BIT0); //Salida (Zumbador)
- P1OUT |= (BIT4); //Resistencia de Pullup (Pulsador)
- while(1){
- //Zumbador
- if ((P1IN & BIT4)==0){ //Comprueba si esta pulsado el pulsador
- if ((TA1CTL & MC_1) == 0) {
- TA1CTL |= TACLR; // Reseteamos el contador
- TA1CTL |= MC_1; //Ponemos el contador en modo UP
- TA1CCTL0 = OUTMOD_4;
- //P2OUT ^= (BIT0); //encendemos el zumbador
- }
- }else{
- TA1CTL &= ~(MC_1);
- TA1CCTL0 = OUTMOD_0;
- }
- //Led 4
- /*if ((P2IN & BIT1)==0){
- P2OUT |= (BIT5);
- TA1CTL |= TACLR; // Reseteamos el contador
- TA1CTL |= MC_2; //Ponemos el contador en modo UP
- while((TA1CCTL0 & CCIFG)==0){
- // detener el codigo durante el tiempo dicho
- }
- P2OUT &= ~(BIT5); //apagamos el led
- TA1CTL |= TACLR; //Reinicia contador
- TA1CTL &= ~(MC_2); //Para el contador
- TACCTL0 &= ~(CCIFG); //Ponemos el flag a 0
- }
- //Led 5
- if ((P2IN & BIT2)==0){
- P2OUT |= (BIT6);
- TA1CTL |= TACLR; // Reseteamos el contador
- TA1CTL |= MC_2; //Ponemos el contador en modo UP
- while((TA1CCTL0 & CCIFG)==0){
- // detener el codigo durante el tiempo dicho
- }
- P2OUT &= ~(BIT6); //apagamos el led
- TA1CTL |= TACLR; //Reinicia contador
- TA1CTL &= ~(MC_2); //Para el contador
- TACCTL0 &= ~(CCIFG); //Ponemos el flag a 0
- }
- //Led 6
- if ((P2IN & BIT3)==0){
- P2OUT |= (BIT7);
- TA1CTL |= TACLR; // Reseteamos el contador
- TA1CTL |= MC_2; //Ponemos el contador en modo UP
- while((TA1CCTL0 & CCIFG)==0){
- // detener el codigo durante el tiempo dicho
- }
- P2OUT &= ~(BIT7); //apagamos el led
- TA1CTL |= TACLR; //Reinicia contador
- TA1CTL &= ~(MC_2); //Para el contador
- TACCTL0 &= ~(CCIFG); //Ponemos el flag a 0
- }*/
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement