MSP432P401定时器TA选择外部时钟源TACLK,无法计数。已经根据数据手册配置了GPIO7.2作为TA1CLK,可是当我让一个VP=3.3V,VN=0V,占空比50%的PWM输入到该引脚后,发现,定时器不计数。请问哪个环节出现了错误?
下面是我的配置代码
const Timer_A_ContinuousModeConfig continuousModeConfig =
{
TIMER_A_CLOCKSOURCE_EXTERNAL_TXCLK, // ACLK Clock Source
TIMER_A_CLOCKSOURCE_DIVIDER_1, // ACLK/1 = 32.768khz
TIMER_A_TAIE_INTERRUPT_ENABLE, // Enable Overflow ISR
TIMER_A_DO_CLEAR // Clear Counter
};
int main(void)
{
/* Stop watchdog timer */
MAP_WDT_A_holdTimer();
/* Configuring P1.0 as output */
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
/* Starting and enabling ACLK (32kHz) */
MAP_CS_setReferenceOscillatorFrequency(CS_REFO_128KHZ);
MAP_CS_initClockSignal(CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_4);
/* Configuring Continuous Mode */
MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P7,GPIO_PIN2, GPIO_PRIMARY_MODULE_FUNCTION);//设置GPIO复用
MAP_Timer_A_configureContinuousMode(TIMER_A1_BASE, &continuousModeConfig);
/* Enabling interrupts and going to sleep */
MAP_Interrupt_enableSleepOnIsrExit();
MAP_Interrupt_enableInterrupt(INT_TA1_N);
/* Enabling MASTER interrupts */
MAP_Interrupt_enableMaster();
/* Starting the Timer_A0 in continuous mode */
MAP_Timer_A_startCounter(TIMER_A1_BASE, TIMER_A_CONTINUOUS_MODE);
while(1)
{
MAP_PCM_gotoLPM0();
}
}
//******************************************************************************
//
//This is the TIMERA interrupt vector service routine.
//
//******************************************************************************
void TA1_N_IRQHandler(void)
{
MAP_Timer_A_clearInterruptFlag(TIMER_A1_BASE);
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
}
