Arduino代码无法完全执行,也无法重置

时间:2016-06-19 01:57:44

标签: loops arduino microcontroller execute

我正在为我的Arduino 101编写一个莫尔斯代码翻译器/东西,但是在我将我的代码上传到我的arduino之后,它只打印了10个长/短值,当它应该打印大约24个时,它也是当我去重置它似乎没有重置。我也很困惑如何不打印第16行," tock"。 我不确定为什么代码没有完全执行,它在TI微控制器上工作正常(是的,我在切换设备时做了修改)

void setup()
{
  Serial.begin(9600);

 pinMode(2,INPUT);
 pinMode(4,OUTPUT);
 digitalWrite(4,HIGH);
 int timeInterval =100;
 int totalTime=0;
 int i= 0;
 int dataPoints=24;
 int dash=3*timeInterval;
 int morse[dataPoints];
 int gapTime=0;
 int gap[dataPoints];
 Serial.print("tock");
for (i=1; i<dataPoints; ){
boolean buttonStatus = !digitalRead(2);
if (buttonStatus == HIGH){
  totalTime=totalTime+timeInterval;



  delay(timeInterval);
}
else{
gapTime=gapTime+timeInterval;


}

delay(timeInterval);
 if(buttonStatus==LOW)  {
   if (totalTime>dash){
    gap[i]=gapTime;

     Serial.print("Long"); 
     Serial.print(",");
     delay(1);
     totalTime=0;
     morse[i]=1;
     i++;
  gapTime=0;
    }
   else if(totalTime>0){
  gap[i]=gapTime;

     Serial.print("short");
      Serial.print(",");
      morse[i]=0;
    gapTime=0;
delay(1);
totalTime=0;
i++;}
 else{
delay(1);

 }
  }
 }
 Serial.println(morse[0]);
 Serial.println(gap[0]);
 Serial.println(morse[1]);
 Serial.println(gap[1]);
 Serial.println(morse[2]);
 Serial.println(gap[2]);
 Serial.println(morse[3]);
 Serial.println(gap[3]);
 Serial.println(morse[4]);
 Serial.println(gap[4]);
 Serial.println(morse[5]);
 Serial.println(gap[5]);
 Serial.println(morse[6]);
 Serial.println(gap[6]);
 Serial.println(morse[7]);
 Serial.println(gap[7]);
 Serial.println(morse[8]);
 Serial.println(gap[8]);
 Serial.println(morse[9]);
 Serial.println(gap[9]);
 Serial.println(morse[10]);
 Serial.println(gap[10]);
 Serial.println(morse[11]);
 Serial.println(gap[11]);
 Serial.println(morse[12]);
 Serial.println(gap[12]);
 Serial.println(morse[13]);
 Serial.println(gap[13]);
 Serial.println(morse[14]);
 Serial.println(gap[14]);
 Serial.println(morse[15]);
 Serial.println(gap[15]);
 Serial.println(morse[16]);
 Serial.println(gap[17]);
 Serial.println(morse[18]);
 Serial.println(gap[18]);
 Serial.println(morse[19]);
 Serial.println(gap[19]);
 Serial.println(morse[20]);
 Serial.println(gap[20]);
 Serial.println(morse[21]);
 Serial.println(gap[21]);
 Serial.println(morse[22]);
 Serial.println(gap[22]); 
 Serial.println(morse[23]);
 Serial.println(gap[23]);
 Serial.println(morse[24]);
 Serial.println(gap[24]);













int unit=5*timeInterval+1; 
for (i=1; i<(dataPoints-1);i++){
if (morse[i]==0&& gap[i+1]<unit && morse[i+1]==0 && gap[i+2]<unit &&      morse[i+2]==0 && gap[i+3]>unit){
 Serial.print("S");
 }if (morse[i]==1&& gap[i+1]<unit && morse[i+1]==1 && gap[i+2]<unit && morse[i+2]==1 && gap[i+3]>unit){
 Serial.print("O");

 }

 if (morse[i]==1 && gap[i+1]<unit && morse[i+1]==0 && gap[i+2]<unit && morse[i+2]==0 && gap[i+3]>unit){
 Serial.print("D");

}
if (morse[i]==0&& gap[i+1]<unit && morse[i+1]==1 && gap[i+2]<unit && morse[i+2]==0 && gap[i+3]>unit){
 Serial.print("R");

}


else{}
 }
 }

 void loop()
{

}

0 个答案:

没有答案