Advertisement
Guest User

atividade10.c

a guest
Oct 22nd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.90 KB | None | 0 0
  1. #include <msp430.h>
  2. #include <intrinsics.h>
  3.  
  4. #define BTN     BIT1    // Port 1.1
  5. #define LED    BIT0    // Port 1.0
  6.  
  7. volatile int n = 0;
  8.  
  9. /**
  10.  * main.c
  11.  */
  12.  
  13. int main(void)
  14. {
  15.     WDTCTL = WDTPW | WDTHOLD;   // stop watchdog timer
  16.  
  17.     P1DIR &= ~BTN;
  18.  
  19.     P1OUT |= BTN; // btn pulled up
  20.     P1REN |= BTN; // pull up resistor enabled
  21.  
  22.     P1IE = BTN;
  23.     P1IES = BTN; // high to low transition
  24.  
  25.     P1SEL = BIT4; // enable timerA output on 1.4...
  26.     P1DIR |= BIT4; // ...as output
  27.  
  28.     TA0CTL = TASSEL_1 | ID_0 | MC_1 | TACLR;
  29.     TA0CCR0 = 326;
  30.     TA0CCR3 = 0;
  31.     TA0CCTL3 = OUTMOD_7;
  32.  
  33.  
  34.     __enable_interrupt();
  35.     while(1){}
  36. }
  37.  
  38. #pragma vector = PORT1_VECTOR
  39. __interrupt void P1_ISR(void) {
  40.     switch(P1IV) {
  41.     case P1IV_P1IFG1:
  42.         if(n >= 326)
  43.             n = 0;
  44.         else {
  45.             TA0CCR3 = n;
  46.             n += 3;
  47.         }
  48.         break;
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement