主题中讨论的其他器件:MSP-EXP430FR5994
-
使用的电路板:MSP-EXP430FR5994
-
大家好、我正在尝试在外部时钟脉冲计数模式下使用计时器 A0。 我使用了如下所示的代码。 如果我将时钟源设置为 TIMER_A_CLOCKSOURCE_ACLK、代码似乎可以正常运行。 这可确保计时器配置正确。
现在、我尝试将 MCU 芯片的 MCU 引脚3 (端口1.2)映射到计时器/计数器0的时钟输入。 为了实现这一点、我使用了函数 GPIO_setPeripheralModuleFunctionInputPin ()、其中我尝试了全部三个参数(GPIO_primary_module_function、GPIO_secondary 模块_function 和 GPIO_ternary_module_function)。 但这些选项似乎都不起作用。
单步执行调试模式中的代码在寄存器监视窗口中显示 TA0下的 TA0R 寄存器没有变化。 如果时钟源被选为 ACLK、那么我注意到在调试模式中 TA0R 寄存器值会逐渐增加。
为了向 MCU 引脚3发送时钟脉冲、我已使用跳线连接板接头中的 P1.2引脚。 跳线的另一端是交替连接到接头的 GND 和3.3V 引脚。 有人能建议代码中是否有遗漏的内容吗? 或者、我可能在做一些概念上错误的事情。
-
代码:
-
// 配置计数器
Timer_A_initContinuousModeParam timerAContiModeCfgParams;
timerAContiModeCfgParams.clockSource = TIMER_A_CLOCKSOURCE_EXTERNAL_TXCLK;
timerAContiModeCfgParams.clockSourceDivider = TIMER_A_CLOCKSOURCE_divider _1;
timerAContiModeCfgParams.startTimer = true;
timerAContiModeCfgParams.timerClear = timer_a_do_clear;
timerAContiModeCfgParams.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;
Timer_A_initContinuousMode (timer_A0_BASE、
&timerAContiModeCfgParams);
// 为外部 CLK 输入配置 GPIO 引脚
GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P1、
GPIO_PIN2、
GPIO_ternary_module_function);
// 测试循环
while (1)
{
counterValue_U16 = Timer_A_getCounterValue (timer_A0_BASE);
if (counterValue_U16 % 2)
{
LED_RED_ON;
}
其他
{
LED_RED_OFF;
}
}
-
此致
Soumyajit