我是想通过P1.3的按键控制P1.0口接的led的光强。实现步进调节的功能。小弟刚接触430几天,英语不好,手册看的头大。。
贴下程序看下哪里有问题。
好像现在是按键可调,但不是步进调节,光强是乱变的。
在这小弟先谢过大神了。
#include
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR &=~BIT3; //P1.3作为按键输入
P1IE |= BIT3; // P1.3 interrupt enabled
P1IES |= BIT3; // P1.3 Hi/lo edge
P1REN |= BIT3; // P1.3 pullup
P1DIR |= BIT0; // P1.0 output
P1OUT |= BIT0;
CCTL2 = CCIE; // CCR2 interrupt enabled
CCR2 = 10;
CCR0 = 100;
TACCTL2 |= OUTMOD_4;
TACTL = TASSEL_2 + MC_3;//+ID0+ID1; // SMCLK, Contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer_A3 Interrupt Vector (TA0IV) handler
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A(void)
{
switch( TA0IV )
{
case 4: // CCR1
{
P1OUT ^= 0x01; // Toggle P1.0
}
break;
case 2: break; // CCR2 not used
case 10: break; // overflow not used
}
}
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
if (P1IFG & BIT3==BIT3)
{
P1IFG = 0x00;
CCR2+=10;
if (CCR2>100) CCR2=10;
}
else P1IFG = 0x00;
}