Advertisement
ismael_ac8

ysafh

Mar 31st, 2020
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.08 KB | None | 0 0
  1. /*****************************************************************************************
  2.  
  3.  P3.1
  4.  
  5. Durante el tiempo que indique estara encendido el ledç
  6.  
  7. La gestión de los pulsadores se realiza por sondeo.
  8.  
  9. 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.
  10.  
  11. 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.
  12.  
  13. AUTORES: Ismael Aguilera Cervera y Pablo Sánchez Serrano
  14.  
  15. ****************************************************************************************/
  16.  
  17. #include <msp430.h>
  18. int main(void)
  19. {
  20.  
  21.   unsigned char s3_ant, s4_ant, s5_ant, s6_ant;
  22.  
  23.  
  24.   WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
  25.  
  26.   //Led 3
  27.   //P1DIR &= ~(BIT4);                         //P1 entrada (Pulsador)
  28.   //P1REN |= (BIT4);                          //Habilita resistencia (Pulsador)
  29.   P2DIR |= (BIT4);                          //Salida (Led)
  30.   //P1OUT |= (BIT4);                          //Resistencia de Pullup (Pulsador)
  31.  
  32.   s3_ant=s4_ant=s5_ant=s6_ant=0;
  33.  
  34.   //Configuracion timer
  35.  
  36.   TA1CTL= TASSEL_2 | ID_0 | MC_0 | TACLR;   //Configuramos en TASSEL_2 -> SMLK // ID_3 = 11 (Division /8) // MC_1 Modo ascendente // TACLR
  37.   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
  38.  
  39.   //Configurar onda PWM (Zumbador)
  40.   //P2DIR |= (BIT0);
  41.   P2SEL |= (BIT0);
  42.   P2SEL2 &= ~(BIT0);
  43.  
  44.   //Zumbador y pulsador
  45.   P1DIR &= ~(BIT4);                         //P1 entrada (Pulsador)
  46.   P1REN |= (BIT4);                          //Habilita resistencia (Pulsador)
  47.   P2DIR |= (BIT0);                          //Salida (Zumbador)
  48.   P1OUT |= (BIT4);                          //Resistencia de Pullup (Pulsador)
  49.  
  50.   while(1){
  51.  
  52.       //Zumbador
  53.       if ((P1IN & BIT4)==0){                //Comprueba si esta pulsado el pulsador
  54.           if ((TA1CTL & MC_1) == 0) {
  55.                 TA1CTL |= TACLR;            // Reseteamos el contador
  56.                 TA1CTL |= MC_1;             //Ponemos el contador en modo UP
  57.                 TA1CCTL0 = OUTMOD_4;
  58.                 //P2OUT ^= (BIT0);            //encendemos el zumbador
  59.           }
  60.       }else{
  61.                TA1CTL &= ~(MC_1);
  62.                TA1CCTL0 = OUTMOD_0;
  63.       }
  64.  
  65.  
  66.       //Led 4
  67.       /*if ((P2IN & BIT1)==0){
  68.           P2OUT |= (BIT5);
  69.           TA1CTL |= TACLR;            // Reseteamos el contador
  70.           TA1CTL |= MC_2;             //Ponemos el contador en modo UP
  71.           while((TA1CCTL0 & CCIFG)==0){
  72.           // detener el codigo durante el tiempo dicho
  73.           }
  74.           P2OUT &= ~(BIT5);            //apagamos el led
  75.           TA1CTL |= TACLR;            //Reinicia contador
  76.           TA1CTL &= ~(MC_2);             //Para el contador
  77.           TACCTL0 &= ~(CCIFG);                    //Ponemos el flag a 0
  78.       }
  79.  
  80.       //Led 5
  81.       if ((P2IN & BIT2)==0){
  82.           P2OUT |= (BIT6);
  83.           TA1CTL |= TACLR;            // Reseteamos el contador
  84.           TA1CTL |= MC_2;             //Ponemos el contador en modo UP
  85.           while((TA1CCTL0 & CCIFG)==0){
  86.           // detener el codigo durante el tiempo dicho
  87.           }
  88.           P2OUT &= ~(BIT6);            //apagamos el led
  89.           TA1CTL |= TACLR;            //Reinicia contador
  90.           TA1CTL &= ~(MC_2);             //Para el contador
  91.           TACCTL0 &= ~(CCIFG);                    //Ponemos el flag a 0
  92.       }
  93.  
  94.       //Led 6
  95.        if ((P2IN & BIT3)==0){
  96.            P2OUT |= (BIT7);
  97.            TA1CTL |= TACLR;            // Reseteamos el contador
  98.            TA1CTL |= MC_2;             //Ponemos el contador en modo UP
  99.            while((TA1CCTL0 & CCIFG)==0){
  100.            // detener el codigo durante el tiempo dicho
  101.            }
  102.            P2OUT &= ~(BIT7);            //apagamos el led
  103.            TA1CTL |= TACLR;            //Reinicia contador
  104.            TA1CTL &= ~(MC_2);             //Para el contador
  105.            TACCTL0 &= ~(CCIFG);                    //Ponemos el flag a 0
  106.        }*/
  107.   }
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement