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:函数调用

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/914635/ccs-msp430fr5969-function-call

器件型号:MSP430FR5969
主题中讨论的其他器件: TPS60120

工具/软件:Code Composer Studio

您好!

我想知道、在将函数的返回值分配给变量时、编译器是否有任何限制。

例如、 int 变量= get_port_status ()

int get_port_status()

int port_a = 0x80;//端口 A 启用了 Bit7

返回 PORT_A;

在调试期间、当我单步执行此类语句时、调试器必须执行函数语句。 但是、不会单步执行函数。 因此、我在进入后获得错误数据。  

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

    你好,sadasivam,

    我没有发现任何问题、您能否提供有关此问题的更多详细信息?

    谢谢!

    此致

    Johnson

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

    是的。 我用相同的逻辑提出了问题。 因此、我将清楚地发送实际流程。

    MSP430FR5969插槽

    在我们的定制设计中、我们使用 TPS60120提供锂聚合物电池(4.2)。 因此、在使用820K 和576K 分压后、我们将接收到 LBI 输入1.032 (2.5 i.p)至1.732v (4.2V i.p)。  

    因此、当电池输入低于1.21v 基准电压时、LBO 输出将被触发为低电平。

    此 LBO 输出被提供到 ADC 模块中并读取电池的 ADC 状态。  

    上面是我们的设计的结构。

    我的问题是、  

    我正在尝试读取电池状态、以检查电池状态是否达到20%。

    我的逻辑是、

    /*********

    *定义

    *

    #define BATTERY_LOW                    0xCC /*  

    if (batt_adc_value<=1400)

    BATT_ADC_VALUE = BATTERY_LOW;

    *

    /*********

    *声明

    *

    unsigned int low_power_mode_check = 0;

    /*********

    *端口配置

    *

    P3DIR &=~BIT7;
    P3REN |= BIT7;
    P3OUT |= BIT7;
    P3IE |= BIT7;
    P3IES |= BIT7;
    P3IFG &=~BIT7;

    PORT3ISR:如果低电平中断发生、BIT7标志被置位。 因此、onBatteryLow = 1;

    //检查稳压器的电池电量不足/电池输出正常

    /********

    *主循环

    *
    while (onBatteryLow)

    onBatteryLow = 0;                    //重置电池低电量标志

    //根据功耗模式确定条件


    while (!(P3IN 和 BIT7))                  // LED 高电平,而 bit7为低电平


    //获取电池状态
    disable_temp_sensor();                //使用模拟引脚13时禁用温度传感器(A11)


    LOW_POWER_MODE_CHECK =电池测量();//使用 ADC 模块模拟引脚13读取电池状态。


    disable_temp_sensor();


    开关(LOW_POWER_MODE_CHECK)

    电池电量低时的情况:

      while (!(P3IN 和 BIT7))
      {
          GPIO_setOutputHighOnPin (GPIO_PORT_P4、GPIO_PIN6);//用于低电池电量指示。 始终处于循环状态。
       }//并且仅在 P3IN & BIT7 = 0x01后发生更改

    中断;
    默认值:break;


    clear_battbuffer();
    P3IE |= BIT7;

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

    你好,sadasivam,

    您通过高电平到低电平将 P3.7引脚初始化为输入中断模式、  为什么不使用中断服务例程?

    此致

    Johnson

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

    是的、我已经在 ISR 中进行了配置。 但是,当我进入电池测量()函数时,调试器不会进入函数。 相反、它进入下一条语句并返回0值。 因此、我无法获得准确的电池电量。

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

    你好,sadasivam,

    有两种步骤调试模式、第一种是 执行最小语句、另一种是执行一行程序。

    我想您可以添加断点来调试您的代码。

    如果没有完整的代码、很难诊断问题。

    此致

    Johnson

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

    好的。