2014-03-03 35 views
0

我写了一个简单的arduino程序来检查一个ascii字符数组。这是我想让它显示“完成”串行显示器,而是它正在打印“OO” ..任何一个可以告诉我什么是在程序中的问题的程序简单的arduino程序

void setup(){ 
    Serial.begin(9600); // connect serial 

} 

void loop(){ 

char inByte; 
    char arr[100]={0}; 
    char arrr[5]={'s','t','a','r','t'}; 
int x=0; 
int y=0; 
    do{ 

    arr[x]=arrr[y]; 
    x++; 
    y++; 
     }while(arr[0]!='s' && arr[1] !='t' && arr[2]!='a' && arr[3]!='r' && arr[4]!='t'); 
    if(arr[0]=='s' && arr[1] =='t' && arr[2]=='a' && arr[3]=='r' && arr[4]=='t'){ 
    delay(1000); 
    Serial.println("done");} 
    else{ 
    delay(1000); 
    Serial.println("oo"); 
} 

}

。 .thanks

+0

开放括号为其他部分也 –

+2

良好的压痕和使用大括号的位置将显示您的问题开括号。不使用大括号是一个不好的做法,即使是单个语句也是如此。 –

回答

0

对于其他部分也

if(arr[0]=='s' & arr[1] =='t' & arr[2]=='a' & arr[3]=='r' & arr[4]=='t'){ 
    delay(1000); 
    Serial.println("done"); 
} 
else { 
    delay(1000); 
    Serial.println("oo"); 
} 
+0

仍在打印“oo” – Sogo

+0

此条件失败while(arr [0]!='s'&& arr [1]!='t'&& arr [2]!='a'&& arr [3]!='' r'&& arr [4]!='t');'如果你想显示完成改变条件为'while(arr [0]!='s'|| arr [1]!='t'|| arr [2]!='a'|| arr [3]!='r'|| arr [4]!='t');' –

+0

@Sogo测试$ arr的值。 –