L052函数内使用#if 0后程序运行异常

2019-07-14 15:23发布

    但是将延时函数直接顶替该函数后,功能又正常。     在该函数之前还有大约5ms的延时,将延时增加到30Ms后,功能又正常。

     不知道什么原因???
     各位大侠请支招哦。谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
jfuwre
1楼-- · 2019-07-14 19:39
首先要搞清预编译和代码得区别。。。预编译是指编译器执行的。。。而真正得代码是MCU执行。。两者有本质区别哦。。。。
dull20112011
2楼-- · 2019-07-14 23:17
TOPCB 发表于 2018-12-7 08:34
首先要明白#if的功能,如果是#if 0...#endif 这段代码是不编译的。

要的就是比编译这个功能,因为调试时进入低功耗比较麻烦,本想用这个功能来屏蔽这部分代码使该函数为空函数,以为空函数不影响,但是好像还是有影响
dull20112011
3楼-- · 2019-07-15 01:11
jfuwre 发表于 2018-12-7 08:43
首先要搞清预编译和代码得区别。。。预编译是指编译器执行的。。。而真正得代码是MCU执行。。两者有本质区别哦。。。。

我以为怕屏蔽了后是空函数,应该能正常工作,但是工作异常,问题是影响的地方居然不是函数调用的地方,所以有点疑惑...
jfuwre
4楼-- · 2019-07-15 06:18
 精彩回答 2  元偷偷看……
TOPCB
5楼-- · 2019-07-15 10:15
楼主的意思是  Delay16(6000);应该停留在这里吗?
如果这个也不能工作,可能是被优化了,顺便发一下  Delay16(6000)的函数。
dull20112011
6楼-- · 2019-07-15 14:26
jfuwre 发表于 2018-12-7 09:14
那你把main函数也贴出来看看。。。。

一周热门 更多>