|
#include <msp430.h>
/**
* main.c
*/
int pwm_dul = 23;
volatile unsigned int flag =0;
void Keyscan();
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // stop watchdog timer
P1DIR |= BIT2;
P1SEL |= BIT2;
P4DIR |= BIT7;
P4OUT &=~BIT7;
P2OUT |= BIT1;
P2REN |= BIT1;
TA0CCR0 = 512-1;
// TA0CCTL1 = OUTMOD_7;
// TA0CCR1 =384;
TA0CTL = TASSEL_1 + MC_1 + TACLR;
// __bis_SR_register(LPM2);
while(1)
{
Keyscan();
if(flag!=0)
{
P4OUT |= BIT7;
}
else
{
P4OUT &=~ BIT7;
}
TA0CCTL1 = OUTMOD_7;
TA0CCR1 =pwm_dul;
}
}
void Keyscan()
{
if((P2IN&BIT1) ==0)
{
__delay_cycles(10000);
if((P2IN& BIT1)==0)
{
while((P2IN& BIT1)==0)
{
flag = ~flag;
}
pwm_dul = (pwm_dul+4)%300;
}
}
}
|
評分
-
查看全部評分
|