msp430 f5529外部中断读取只进入一次,中断引脚与原来的电平相反 请问怎么改比较合适啊
#define TIMER_PERIOD 12500
void Timer_A0_PWM_Init(void)
{
Timer_A_outputPWMParam htim = {0};
GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1, GPIO_PIN2); //P1.2复用输出
htim.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; //时钟源选为SMCLK = 25MHz
htim.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_40; //分频系数设为40
htim.timerPeriod = TIMER_PERIOD - 1; //装载值设为12500 - 1
htim.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;//P1.2 对应 TA0.1 故设为TIMER_A_CAPTURECOMPARE_REGISTER_1
htim.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;
htim.dutyCycle = 1250 ;//20ms
//P1.2 对应 TA0.1 为TIMER_A0_BASE
Timer_A_outputPWM(TIMER_A0_BASE, &htim);
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
Timer_A0_PWM_Init();
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN6);
GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN6);
GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN6, GPIO_HIGH_TO_LOW_TRANSITION);
GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN6);
OLED_Init();
OLED_Clear();
__enable_interrupt();
while(1)
{
}
}
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
unsigned int count = 0;
if(!GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN6))
{
count++;
}
OLED_ShowNum(0, 0, count, 2, 13);
GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN6);
}