«Настройка» не называе тып?

Быў спрабуе працаваць нейкі код, які я знайшоў у Інтэрнэце, каб задаволіць свае патрэбы, і ён працягвае паказваць тую ж памылку <�моцны> «налады» не называе тып . Я паспрабаваў ўсталяваць яго несапраўдным, несапраўднае, а таксама перапісвання кода, але ўсё яшчэ ўзнікае тая ж праблема, і мне было цікава, як вырашыць гэтую праблему.

Гэтая праграма будзе ў нейкі момант кампіляцыі даных з 3-х розных датчыкаў і рабіць свае розныя разлікі ў рамках гэтых асобных завес і друк серыйных ў табліцы, якая затым можа быць захавана або на экспарт. Толькі датчык прымацаваны на дадзены момант з'яўляецца ультрагукавым датчыкам, які вымярае адлегласць гэта ад паверхні. (Апошнія 2 групы коды маюць асноўную функцыю друку толькі таму цыкл занятая)

Вось код:

#include 

long timeCounter;//milliseconds counter  
long timePassed;//The actual milliseconds time 
int trigPin = 2;
int echoPin = 3; 

long delay1 = 10;   //ms for cycle of event 1  
long delay2 = 5;    //ms for cycle of event 2  
long delay3 = 25;   //ms for cycle of event 3  
long delay4 = 10;

// Counters for the number of triggered events before the  
// corresponding event starts  
int countEvent1, countEvent2, countEvent3, countEvent4;  

int TRIGGER = 5;//ms to trigger the milliseconds timer  

int MAX1 = 2;//Number or triggered milliseconds to start event1  
int MAX2 = 1;//Number or triggered milliseconds to start event2  
int MAX3 = 5;//Number or triggered milliseconds to start event3  
int MAX4 = 2;

// Initialisation  
setup {  
     timeCounter = millis();//read the actual internal time  
     timePassed = 0;//we start with no time passed  

     countEvent1 = 0;  
     countEvent2 = 0;  
     countEvent3 = 0;
     countEvent4 = 0; 
} 

// Infinite cycle  
loop() {  

    //Read the actual time  
     timePassed = millis() - timeCounter;  
    //The smallest unit of time that should trigger an event is for event 2 (5 ms)  
    //so our trigger should count this smaller unit  

    //Check if the time passed after last reading is the trigger time  
     if(timePassed >= TRIGGER) {   
          if(++countEvent1 == MAX1){  
              //Reset the trigger and start the event  
               event1();  
               countEvent1 = 0;  
          }//Event 1   

         //It's time to manage the events  
          if(++countEvent2 == MAX2){  
              //Reset the trigger and start the event  
               event2();  
               countEvent2 = 0;  
          }//Event2 

         //It's time to manage the events  
          if(++countEvent3 == MAX3){  
              //Reset the trigger and start the event  
               event3();  
               countEvent3 = 0;  
          }//Event3

          if(++countEvent4 == MAX4){  
              //Reset the trigger and start the event  
               event4();  
               countEvent4 = 0;  
          }//Event4 

     }//Trigger 

}//LOOP  

// ============ Event functions ============== 

event1() {  
  long duration, distance;
  digitalWrite(trigPin,HIGH);
  delay(100);
  digitalWrite(trigPin, LOW);
  duration=pulseIn(echoPin, HIGH);
  distance =(duration/2)/29.1;
}  

event2() {  
Serial.print("work")
}  

event3() {   
Serial.print("work")
}  

Я вельмі новы для кадавання, так што будзе дурныя памылкі, схаваных сярод гэтага я магу гарантаваць.

2
Вы павінны вывучыць асновы сінтаксісу мовы, перш чым пісаць праграмы ў ёй ...
дададзена аўтар Majenko, крыніца
Вы проста забываеце гладкія дужкі пасля несапраўднай налады . Ён павінен быць несапраўднай ўстаноўкі() {
дададзена аўтар Renato, крыніца

5 адказы

У вас ёсць праблемы з вызначэннем функцыі. Растлумачу на прыкладзе.

int kPinLed = 8;//LED - Pin 8

void setup()
{
  pinMode(kPinLed, OUTPUT);//LED as output
}

void loop()
{
  ledFun(); //Create LED Function
}

//Now write function's code with type, here "void"

void ledFun()
{
  digitalWrite(kPinLed, HIGH); //LED ON
  delay(1000);
  digitalWrite(kPinLed, LOW);  //LED OFF
  delay(1000);
}

Тыя ж рэчы, якія вы павінны зрабіць з вашым кодам. Проста напішыце правільна функцыянаваць Тып. Я спадзяюся, што гэта дапаможа.

3
дададзена

Усе вашыя функцыі (уключаючы ўстаноўку і петлі) патрэбен тып як частка аб'явы. Гэта, напрыклад:

event2() {  
Serial.print("work")
}  

Павінна быць:

void event2() {  
  Serial.print("work");
  }

Звярніце таксама ўвагу на кропку з коскай пасля Serial.print выкліку функцыі.

У мяне ёсць старонку, якая тлумачыць асновы .

На гэтай старонцы прадстаўлена дыяграма, якая расшчапляе, што аб'ява функцыі выглядае наступным чынам:

Function definitions

2
дададзена

дэкларацыі функцый пачынаюцца з тыпам:

void setup() {

}

void loop() {

}

несапраўдным азначае, што функцыя не вяртае значэння.

1
дададзена
<�Р> Памылка «Настройка» не называе тып. Я паспрабаваў ўсталяваць яго несапраўдным

правільна набраўшы яго заключаецца ў наступным:

void setup(void) {
...
}

void loop(void) {
...
}
0
дададзена

Так, вы ніколі не вызначаны налад або пятля, якія патрэбныя пустата перад імі.

void setup(){

}



void loop(){

} 
0
дададзена