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/MSP430FR5994:MSP-EXP430FR5994

Guru**** 2561750 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/910591/ccs-msp430fr5994-msp-exp430fr5994

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

您好!  

使用与 if 指令相关的 while 循环时遇到问题。 不调用 while 循环中的 if 指令、即使"unsigned volotile int Sampling =="1"->条件为 true 也是如此。

while (1)

__DELAY_CYCLLES (1);// DCO 时钟周期
if (采样= 1)

START = 1;

ADC12CTL0 |= ADC12ENC | ADC12SC;//开始采样/转换
Spannung = Spannung_func (Messwert);
Messwert_ppm = Messwert_ppm_func (Spannung);
ADC12CTL0 &=~ADC12ENC;//禁用转换
采样= 0;
//用于调试器

_bis_SR_register (LPM0_bits | GIE);// LPM0、ADC12_ISR 将强制退出//muss hier in、而 Schleife 则会发出 bleine、sonst geht gar nichts
__no_operation();

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

    您如何知道 if()块没有被执行?  

    您是否正在使用编译器优化器? 这可能会在调试器中产生一些幻想。

    >ADC12CTL0 &=~ADC12ENC;//禁用转换

    根据这两个函数运行所需的时间、这可能会在中间停止转换。 这样做的效果会因 ADC 配置而异[参考用户指南(SLAU367O)第34.2.8.6节]、但所有情况都不会很有用。 我的建议是完全不要这样做,而是等待 ADC 完成。

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

    对于包含此代码的源文件...

    [引用 user6336085"]即使"volunsigned int Sampling == 1"->条件为 true,也不调用 while 循环中的 if 指令。

    (笑声)  请按照文章 How to Submit a Compiler Test Case 中的说明进行操作

    谢谢、此致、

    乔治