标题: 请教,单片机程序加的延时后编译不过是什么原因? [打印本页]
作者: wrlsohu 时间: 2024-2-9 14:38
标题: 请教,单片机程序加的延时后编译不过是什么原因?
#include<reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
void delay(uint16 x)
{
uint8i,j;
for(i= x; i > 0; i --)
for(j= 114; j > 0; j --);
}
void main()
{
uint8b = 0, way = 0;
while(1)
{
if(way == 0)
P0=1;
// delay(200); //编译不过?
else
P0=0;
delay(200);
}
}
作者: xiaobendan001 时间: 2024-2-9 19:53
if(){}else{},如果代码超过一句,需要增加大括弧的。比如你这样的后面的那个delay(200);实际上也不受else的约束
作者: Hephaestus 时间: 2024-2-9 20:01
你指出的那句并不是编译不过的原因,后面的else才是编译不过的原因。把你写的这句注释掉能编译通过,并不是这句写错了。
要看出错的信息,不能凭空想象,瞎改只能改到编译通过,不能改成对的。
作者: wrlsohu 时间: 2024-2-10 06:25
谢谢您,受教了
作者: wrlsohu 时间: 2024-2-10 06:27
谢谢您的指教
作者: 刘佑红 时间: 2024-2-10 06:57
应该改为:- while(1)
- {
- if(way == 0)
- {
- P0=1;
- delay(200);
- }
- else
- {
- P0=0;
- delay(200);
- }
- }
复制代码
作者: lkc8210 时间: 2024-2-10 21:39
作者: zhuls 时间: 2024-2-10 22:17
列文虎克,赞!
作者: xiaobendan001 时间: 2024-2-11 08:07
观察很细心
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |