主题中讨论的其他器件:MSP-EXP430F5529LP、
工具/软件:Code Composer Studio
我正在使用2个计时器(Timer_A0和 Timer_A1)对 MSP-EXP430F5529LP (LaunchPad)进行编程、条件如下:
Timer_A0:内部时钟(ACLK)、向上计数模式、捕获/比较中断被启用、定时器中断被禁用
Timer_A1:外部时钟(P1.6)、中断禁用、连续模式
Timer_A0工作正常(相应地生成中断)。
Timer_A1:我有问题。 我连接 P1.6悬空、接地和 VCC、并且计数器仍在这3个条件(浮点、GND、VCC)下运行、这意味着当我读取 TA1R (计时器计数器寄存器)时、我获得不同的值。 它应该仅在我将 P1.6放置到信号时进行计数、如果 P1.6接地、读数应该返回零。
我是否对这些计时器的工作方式有误解? 下面是用于初始化器件的代码的摘要。 欢迎提供任何帮助。
GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P1、GPIO_PIN6); // TA1CLK
Timer_A_initUpModeParam gTimerA0params ={0};
Timer_A_initContinuousModeParam gTimerA1params ={0};
// Timer_A0
gTimerA0params.clockSource =定时器_A_CLOCKSOURCE_ACLK; //使用 ACLK 作为定时器内部时钟
gTimerA0params.clockSourceDivider = TIMER_A_CLOCKSOURCE_DEVIDER_1; //将时钟频率除以1
gTimerA0params.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE; //在 TAxCTL 寄存器中禁用计时器中断
gTimerA0params.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CAPTURECOMPARE 中断_ENABLE; //在 TAxCCTL0寄存器中启用捕捉比较中断
gTimerA0params.timerClear =定时器_A_DO 清除; //清除时间计数器 TAxR 寄存器
gTimerA0params.startTimer =错误; //尚未启动计时器。
gTimerA0params.timerPeriod = 500; //设置计时器周期
Timer_A_clearTimerInterrupt (timer_A0_BASE);
Timer_A_initUpMode (timer_A0_BASE、&gTimerA0params);
gTimerA1params.clockSource = TIMER_A_CLOCKSOURCE_EXTERNAL_TXCLK; //使用 P1.6作为外部时钟源
gTimerA1params.clockSourceDivider = TIMER_A_CLOCKSOURCE_DEVIDER_1; //将时钟频率除以1
gTimerA1params.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE; 在 TAxCTL 寄存器中禁用//计时器中断
gTimerA1params.timerClear =定时器_A_DO 清除; //清除时间计数器 TAxR 寄存器
gTimerA1params.startTimer =错误; //尚未启动计时器。
Timer_A_initContinuousMode (timer_A1_base、&gTimerA1params);