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.

[参考译文] CCS/MSP430FR5969:通过开关控制 LED |软件|上拉寄存器

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/588226/ccs-msp430fr5969-control-led-with-switch-software-pull-up-register

器件型号:MSP430FR5969

工具/软件:Code Composer Studio

我正在尝试在开关的帮助下控制 LED。 这是代码

#include 
#define SWITCH_ST态(P1IN 和0x02)

void main (void){

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
PM5CTL0 &=~LOCKLPM5;

/********配置 CS 寄存器******** /
CSCTL0_H = 0xA5;//解锁 CS 寄存器
CSCTL1_H = 0x00;//将 DCO 设置为8MHz
CSCTL1_L = 0x0c;
CSCTL2 = 0x0003 | 0x0100 | 0x0030;//设置 DCO = SMCLK = MCLK
CSCTL3 = 0x0000 | 0x0000 | 0x0000;//现在将分频器值设置为1
CSCTL0_H = 0x00;//锁定 CS 寄存器
/******** /

P1DIR |= 0x01;
P1OUT |= 0x01;//初始 LED 在 P1.0上

P1DIR |= 0x02;
P1OUT |= 0x02;//P1.1初始为高电平

P1DIR &= 0xFD;//P1.1在输入引脚上设置

while (1){

如果(switch_state)=0x00){//如果开关按下,则打开 LED
P1OUT |= 0x01;//我是否需要上拉寄存器?
while ((switch_state)=0x00);//保持 LED 亮起,直到交换机释放
}

P1OUT &=~0x01;
}//end of while (1)

}

在调试期间、我发现一旦 Port1的第2位变为低电平、它永远不会恢复到高电平。 它进入 if()并被卡住

while ((switch_state)==0x00); 

 是否有任何有助于纠正此问题的软件/代码更改?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    P1OUT |= 0x01;
    P1DIR |= 0x01;
    
    P1REN |= 0x02;
    P1OUT |= 0x02;
    
    while (1)
    {
    if (!switch_state)
    {
    P1OUT |= 0x01;
    }
    否则
    {
    P1OUT &=~0x01;
    }
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 我不知道 MSP430FR5969允许使用 PxREN 指令。 您能否向我提供相关链接以了解详情? 例如 :processors.wiki.ti.com/.../O_(MSP430)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否详细说明为什么要使用? 如果(!switch_state)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题。 为愚蠢而道歉。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一切都很清楚?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仍在尝试查找受信任的源/链接/文档以了解可用的各种指令(如 PxREN)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    用户指南包含所有这些信息。