#include "Pwm.h"
void PWM_Init()
{
TA0CTL = 0x0110;
TA0CCR0 = 655;
TA0CCTL3 = 0x00E0;
TA0CCR3 = 33;
TA0CCTL4 = 0x00E0;
TA0CCR4 = 48;
P1DIR |= 0x30;
P1SEL |= 0x30;
TA0CTL |= 1 << 2;
}
void TimerA1_Init()
{
TA1CTL = 0x0112;
TA1CCR0 = 32767;
TA1CTL |= 1 << 2;
}
int main(void)
{
WDTCTL = WDTPW | WDTHOLD;
P1DIR |= 0x01;
P4DIR |= 0x80;
P1DIR &= ~(0x01 << 1);
P1OUT = 0x02;
P1REN |= 0x01 << 1;
P2DIR &= ~(0x01 << 1);
P2OUT = 0x02;
P2REN |= 0x01 << 1;
PWM_Init();
TimerA1_Init();
_EINT();
P4OUT &= 0x7F;
while(1)
{
if(P2IN & 0x02)
{
if(P1IN & 0x02)
{
TA0CCR3 = 52;
P4OUT &= 0x7F;
}
else
{
TA0CCR3 = 36;
P1OUT &= 0xFE;
P4OUT |= 0x80;
}
}
else
{
TA0CCR3 = 68;
P1OUT |= 0x01;
P4OUT &= 0x7F;
}
}
}
#pragma vector=TIMER1_A1_VECTOR
__interrupt void TimerA1_isr(void)
{
TA1CTL &= 0xFFFE;
P1OUT ^= 0x01;
return ;
}