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.

[参考译文] MSP430FR2355:MSP430 LaunchPad - Code Composer Studio 断点跳转到不同的行。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1429582/msp430fr2355-msp430-launchpad---code-composer-studio-breakpoint-jumping-to-different-line

器件型号:MSP430FR2355

工具与软件:

我为我的 MSP430 LaunchPad 编写了一个快速肮脏的程序、用于测试传感器是否会检测到磁体、但我无法对其进行调试、因为 CCS 不断移动我在 if 语句中放置的断点。 相关代码段:

    // Configure ports
    P1DIR |= BIT0;          // Config P1.0 (LED1) as output
    P1OUT &= ~BIT0;         // Clear LED1 to start
    P1DIR &= ~BIT5;         // Config P1.5 input
    P1REN |= BIT5;          // Enable resistor
    P1OUT |= BIT5;          // Make pull-up resistor

    PM5CTL0 &= ~LOCKLPM5;

    while (1) {
        if (P1IN & BIT5 == 0) {
            P1OUT |= BIT0;
        }
        else P1OUT &= ~BIT0;
    }

我已经尝试了几种不同的排列、试图使断点位于 if 语句中、但它始终跳转到 else 语句、没有明显的理由。

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

    大家好、Aaron、

    您认为问题是代码问题还是断点问题?   

    您是否可以尝试在 if 语句代码中放入"__no_operation();"、然后再中断指向它?   

    谢谢!

    JD

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

    这是断点的问题,而不是我的代码:我刚刚在第11行和第12行之间添加了__ no_operation ();,在编译时断点仍然跳到 else 行。

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

    您是否在所链接的关于关闭编译器优化的线程中看到了接受的答案?

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

    > if (P1IN & BIT5=0){

    由于运算符优先级、这会作为"if (P1IN & 0)"执行、即始终为 false、因此编译器不会为该子句生成任何代码。 请尝试改用:

    > if (P1IN & BIT5 )=0){

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

    啊、很好的抓住布鲁斯!   

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

    和 le facepalm。 这解决了问题、这意味着传感器可能毕竟在工作、我很愚蠢。

    ETA:是的,传感器(A3144霍尔效应开关)工作正常,虽然它仍然不够灵敏,在应用中有用: LED 亮起,它只是要求物体离霍尔效应传感器太近,并在正确的方向。