This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2433:我想将 LED 打开1-2秒、然后 MSP430FR2433应进入待机(LMP3)模式60秒

Guru**** 2478765 points
Other Parts Discussed in Thread: MSP430FR2433

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1293914/msp430fr2433-i-want-to-turn-the-led-on-for-1-2-seconds-and-then-the-msp430fr2433-should-go-into-standby-lmp3-mode-for-60-seconds

器件型号:MSP430FR2433

您好、TI 团队:

我正在项目中使用该 MSP430FR2433。 我想要的是 MSP 应将 LED 打开和关闭2秒、然后进入 LMP3模式60秒、此过程应重复。 我不知道我在此主题中提供的代码中有什么问题、因为 LED 从不关闭并保持亮起状态。 如果有人可以帮助我更正此代码以获取所需的结果、那将非常好。

谢谢!

此致、

普赫拉吉·辛格

#包含

整型计数;

void delay_seconds (unsigned int seconds)
{
TA1CCR0 =(int)(32768 *秒);//根据 LFXT 频率(32768Hz)设置计数目标
TA1CTL |= MC__UP;//将计数模式设置为向上
_ bis_SR_register (LPM3_bits | GIE);//输入 LPM3

int main (空)
{
WDTCTL = WDTPW | WDTHOLD;//停止 WDT

//配置 GPIO
P1DIR |= BIT0;// LED 中断
P1OUT |= BIT0;
P2SEL0 |= BIT0 | BIT1;//将 XT1引脚设置为第二功能

//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~μ A LOCKLPM5;

//时钟系统设置
正确
{
CSCTL7 &=~(XT1OFFG | DCOFFG);//清除 XT1和 DCO 故障标志
SFRIFG1 &=~OFIFG;
}while (SFRIFG1和 OFIFG);//测试振荡器故障标志

__ bis_SR_register (SCG0);//禁用 FLL
CSCTL3 |= SELREF__XT1CLK;//将 XT1设置为 FLL 基准源
CSCTL0 = 0;//清除 DCO 和 MOD 寄存器
CSCTL1 &=~(DCORSEL_7);//首先清除 DCO 频率选择位
CSCTL1 |= DCORSEL_5;//设置 DCO = 16MHz
CSCTL2 = FLLD_0 + 487;// DCOCLKDIV = 16MHz
__delay_cycles (3);
__BIC_SR_register (SCG0);//启用 FLL
while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));// FLL 已锁定

CSCTL4 = SELMS__DCOCLKDIV | SELM__XT1CLK;//将 XT1 (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
//默认的 DCOCLKDIV 作为 MCLK 和 SMCLK 源

//计时器设置
TA1CCTL0 = CCIE;// TACCR0中断被启用
TA1CCR0 = 32768;//设置1秒间隔的计数目标
TA1CTL = TASSEL__ACLK | MC__UP;//将时钟源设置为 ACLK、计数模式设置为向上

计数= 0;

while (1)
{
delay_seconds (1);//延迟1秒
///您的代码

#if defined (__TI_Compiler_version__)|| defined (__IAR_SYSTEMS_ICC__)
#pragma vector = Timer1_A0_vector
__interrupt void Timer1_A0_ISR (void)
#Elif 已定义(_ GNU _)
void __attribute__((interrupt (Timer1_A0_vector)) Timer1_A0_ISR (void)
#else
#错误编译器不受支持!
#endif
{
if (count == 0)
{
P1OUT |= BIT0;

否则
{
P1OUT &=~BIT0;

计数++;
if (count > 30)
{
计数= 0;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 

    首先、 如果 LED 在初始化阶段亮起、需要检查 是否可以进入 TA1中断。

    在确认程序可以延迟时间并控制 LED 后、添加一个低功耗模式以逐步实现功能。

    请参阅 MSP430FR2433的 SDK 中的代码

    SDK 中有许多代码示例供您参考。

    例如 msp430fr243x_ta0_17.c 和 msp430fr243x_ta0_22.c 。

    此致、

    赫利克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Helic 为您提供的建议、我会根据您所说的内容进行检查和更改。 会回来给你的!

    谢谢!

    此致、

    普赫拉吉·辛格