主题中讨论的其他器件: MSP-EXP430G2
您好!
我一直在尝试使用 MSP-EXPG2开发板在 MSP430G2553上使用 ACLK 32kHz 内部晶振通过 TIMER_A 使 LED 闪烁。 我正在使用 USB 连接和计算机为 MCU 供电。 我看到了各种各样的问题、包括:在独立模式下实现完美的性能(包括准确的时序)、在调试模式下快速闪烁两倍、在独立模式下不运行、闪存的频率随手靠近电路板而变化(手靠近电路板 LED 闪烁更快)、 在调试模式下(当电路板脱离接地垫时)工作正常时、不会在独立模式下运行。
我最初没有"绑定"未使用的引脚、尽管这是问题所在。 我连接了所有未使用的引脚。
这似乎是接地问题。 如果位于接地垫上且接地至内部接地、则该电路板在独立模式下工作。 尽管当在无焊试验电路板上设置外部 LED 时、它将不起作用。 在这种情况下、由于我使用的跳线电缆为公型、并且插入到接头底部、因此电路板已脱离垫层。
我唯一没有这些问题的时候是使用 SMCLK 时钟的时候。 它在调试和独立工作时、在接地垫上或离地垫上具有相同的计时、双手靠近或远离电路板。
下面的代码是我在使用 SMCLK 时使用的代码。 当尝试使用 ACLK 时、我进行这两个更改...CCrO=1023和 tassel_1。 我最初使用的是带有中断的 Timer_A、但将其更改为使用硬件驱动 LED 输出、并且有类似的问题。
为什么我看到 ACLK 而不是 SMCLK 出现这些问题的任何想法。 另请注意、我在两个不同的 MSP-ESP420G2开发板上遇到了此问题。 感谢您提供的任何建议。
另请注意、我想使用 ACLK 晶体、因为与 SMCLK 和 VLO 的 RC 类型时钟相比、它在 MSU 的工作温度范围内更加精确。
#include
int main (空)
{
WDTCTL = WDTPW + WDTHOLD;
//设置 Timer A 和通道0以切换模式。
CCR0 = 65535
TACCTL0 = OUTMOD_4;
TACTL = tassel_2|ID_3|MC_1_TACLR;
//将 P1.5设置为 TA0.0的输出
P1SEL |= BIT5;
P1DIR |= BIT5;
//将所有未使用的引脚设置为输出并使用上拉电阻器设置为高电平。
P1OUT |= BIT0|BIT1 |BIT2 |BIT3 |BIT4 |BIT6 | BIC7;
P1REN |= BIT0|BIT1 |BIT2 |BIT3 |BIT4 |BIT6 |BIC7;
P2REN |=BIT0 | BIT1 |BIT2 |BIT3 |BIT4 | BIT5;
P2OUT |= BIT0 |BIT1 |BIT2 |BIT3 |BIT4 |BIT4;
while (1){}
//无限循环
}