Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <msp430.h>
- void set_pins(void){
- P1DIR &= ~BIT1;
- P2DIR &= ~BIT1;
- P1REN |= BIT1;
- P2REN |= BIT1;
- P2OUT |= BIT1;
- P1OUT |= BIT1;
- P4DIR |= BIT7;
- P4OUT &= ~BIT7;
- P5SEL |= BIT2 | BIT3 | BIT4 | BIT5;
- UCSCTL4 = SELS_5;
- UCSCTL5 = DIVS_2;
- UCSCTL6 = 0;
- }
- void set_timers(void){
- TA0CTL = TASSEL_2 | ID_0 | MC__UP | TACLR;
- TA0EX0 = TAIDEX_0;
- TA0CTL &= ~TACLR;
- TA0CCR0 = 20971;
- TA0CCR1 = 10485;
- }
- void delay(void){
- volatile long int i;
- for(i=0;i<=1000;i++){
- }
- }
- void check_sw(void){
- if((P1IN & BIT1) == 0){
- delay();
- TA0CCR1 = TA0CCR1 + 1048;
- if(TA0CCR1 > 20971)
- TA0CCR1 = 20971;
- }
- if((P2IN & BIT1) == 0){
- delay();
- TA0CCR1 = TA0CCR1 - 1048;
- if(TA0CCR1 <= 0)
- TA0CCR1 = 0;
- }
- }
- void set_pwm(void){
- while(1){
- check_sw();
- if((TA0CCTL1 & CCIFG) != 0){
- TA0CCTL1 &= ~CCIFG;
- P4OUT |= BIT7;
- }
- if((TA0CTL & TAIFG) !=0){
- TA0CTL &= ~TAIFG;
- P4OUT &= ~BIT7;
- }
- }
- }
- int main(void) {
- WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
- set_pins();
- set_timers();
- set_pwm();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement