use*_*816 1 c compiler-construction assembly if-statement msp430
这可能是一个简单的问题所以,我希望你能指出我正确的方向.
我正在用C编写一个简单的IO程序.在我的程序中间,我有一个永不执行的if语句.当我试图在if语句中添加一个断点时,我意识到这一点只是为了让它自动删除并向下推过if语句块.进一步深入研究问题,c编译器不会为我的if语句创建任何汇编代码.以下是我的代码片段和程序集输出.
码:
void sendData(unsigned int val1 ){
P1OUT |= 1;
if ((val1 & 0x8000 ) == 0x8000)
wait(T1H);
else
wait(T1L);
P1OUT &= ~(1);
}
Run Code Online (Sandbox Code Playgroud)
*注意:是的,我确实有另一个叫做wait的函数,可以延迟多个周期.
部件:
13 P1OUT |= 1;
sendData():
c0ae: D3D2 0021 BIS.B #1,&Port_1_2_P1OUT
18 P1OUT &= ~(1);
c0b2: C3D2 0021 BIC.B #1,&Port_1_2_P1OUT
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
等待可能是一个繁忙的循环,正在逐步优化.我相信有一个良好的等待函数的例子,它将在示例代码中保持优化.
例如,参见http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/18638.aspx
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |