• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

arduino: a function-definition is not allowed here before '{' token

VPS Starter Arubacloud
0 głosów
2,451 wizyt
pytanie zadane 25 lipca 2020 w Mikrokontrolery przez antekelektronik Obywatel (1,120 p.)

 cześć , postanowiłem że zrobię sobie mały projekt z wyświetlaczem siedmio-segmentowym. po długiej walce z pinami (ponieważ nie zapisałem która dioda jest podłączona do jakiego pinu) nareszcie wszystko w miarę  poukładałem aby wszystko było ładne , jasne i wyraźne. mogłem rozpocząć przyjemną pracę . na razie utworzyłem tylko trzy liczby , tak dla testu. podczas kompilacji wystąpił błąd , nie mam pojęcia o co może chodzić , wszystkie funkcje są podobne i działają (to znaczy kompilują się) a ta nie(chodzi o trzy(); ) . a function-definition is not allowed here before '{' token , tak wygląda błąd.  zastanawia mnie czy to coś z kompilatorem , że myli się czy coś , czy to ja coś zrobiłem źle i tego nie dostrzegam? z góry dziękuję wszystkim którzy pomogą :)

 

mój kod:

void jeden();
void dwa();
void trzy();
void cztery();
void piec();
void szesc();
void siedem();
void osiem();
void dziewiec();
void zero();
void wyczysc();

String dane;
bool dpstate;

int a = 6, b = 7 , c = 10 , d = 12 , e = 13 , f = 8 , g = 9 , dp = 11;

void setup() {
  for(int i = 13; i >= 6; i--){
    pinMode(i,OUTPUT);
  }
  pinMode(5,INPUT);
  Serial.begin(1200);
}

void loop() {
  if(Serial.available() > 0){ // sprawdza czy sa dostepne jakies dane
    dane = Serial.readStringUntil("\n"); // wczytuje dane do typu danych string

    if(dane == "1\n"){ jeden(); }
     else if(dane == "2\n"){ dwa(); }
     else if(dane == "3\n"){ trzy(); }

      else if(dane == "dp\n"){
        if(dpstate == false){
          digitalWrite(dp,HIGH);
          dpstate = true;
        }else if(dpstate == true){
          digitalWrite(dp,LOW);
          dpstate = false;
        }
      }
     
     else{ Serial.println("nieznana komenda");
    }
  }


void wyczysc(){
   for(int i = 13; i >= 6; i--){
    digitalWrite(i,LOW);
  }
}

void jeden(){
  wyczysc();
  digitalWrite(b,HIGH);
  digitalWrite(c,HIGH);
}

void dwa(){
  wyczysc();
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(e,HIGH);
  digitalWrite(d,HIGH);
}

void trzy(){
  wyczysc();
  digitalWrite(a,HIGH);
  digitalWrite(b,HIGH);
  digitalWrite(g,HIGH);
  digitalWrite(c,HIGH);
  digitalWrite(d,HIGH);
}


oraz jeśli chcesz , możesz go wykorzystać , tylko pozmieniaj w int a , b , c... na piny które podłączyłeś

1 odpowiedź

0 głosów
odpowiedź 25 lipca 2020 przez SimiVoid Pasjonat (19,790 p.)
Linijka 44 nie zamykasz sekcji else klamrą "}"
komentarz 25 lipca 2020 przez antekelektronik Obywatel (1,120 p.)
dzięki wielkie za pomoc , nie zauważyłem tego , pomimo że go kilka razy sprawdzałem , skupiałem się głównie na tej funkcji gdzie był błąd . jeden mały znak zepsuł cały kod ...

Podobne pytania

0 głosów
2 odpowiedzi 552 wizyt
0 głosów
1 odpowiedź 220 wizyt
pytanie zadane 24 października 2022 w Mikrokontrolery przez Mechanik_10 Nowicjusz (120 p.)
–3 głosów
0 odpowiedzi 1,788 wizyt

93,032 zapytań

141,996 odpowiedzi

321,300 komentarzy

62,379 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...