Arduino, kopplar inte vad som är orsaken till felmeddelandet

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
papabear
Inlägg: 821
Blev medlem: 14 mars 2004, 03:27:12
Ort: Eskilstuna
Kontakt:

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av papabear »

Det är inte fel på miljön, det är din kod.

edit: var på telefon, jag ska förklara mer om en strax. men det jag menar är att ditt problem kommer inte att försvinna bara för att du installerar om.
Användarvisningsbild
papabear
Inlägg: 821
Blev medlem: 14 mars 2004, 03:27:12
Ort: Eskilstuna
Kontakt:

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av papabear »

Här är funktionen skriv() definierad utanför (ovan) setup() och loop():

Kod: Markera allt

void skriv()
{
   // skrivkod
}

void setup() 
{
   // kod som ska köras en gång
}

void loop() 
{
   // kod som upprepas
   skriv();
}
Här är skriv definierad i setup(), vilket inte är godkänt och ger dig ditt fel:

Kod: Markera allt

void setup() 
{
   // kod som ska köras en gång
   void skriv()
   {
      // skrivkod
   }
}

void loop() 
{
   // kod som upprepas
   skriv();
}
Jämför kodrutorna tills du ser vad som sklijer.
I de exempel du har visat som inte funkar har du definierat skriv() i setup() eller loop(), vilket inte går.
I de exempel andra gett dig ligger skriv() utanför setup() och loop().
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Henry »

Jo jag vet jag orkade dock bare inte klistra in alla tre varianter varje gång, men jag testade ändock även att lägga den utanför loop och setup men ändå fungerade det inte, med en ny sida så fungerade det för att sedan komma tillbaka efter några få kompileringar vilket inte stämde. Nu har jag dock ominstallerat allt och so far so good. Att koden som sådan kanske inte är helt funktionabel vet jag men det kommer jag att fixa, så jag är nöjd.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av johano »

Henry skrev:Det är jag med på nu och jag flyttade ju också detta till setupen där det ändå inte kompilerades innan, men gör det nu. Och koden ovan som har allt bortkommenterat MEN funktionen i loop kompilerar ändå vilket den ju då inte skall? Eller behålls grejer i nåt minne eller så i kompilatorn kanske.

Undrar också varför inte originalkoden kompilerade i början oavsett om jag satte funktionen i setupen eller utanför allt.
Tillåt mig komma med en gissning:

din ursprungskod innehåller två fel, dels att skriv() definieras inne i en annan funktion (loop) och att en icke deklarerad variabel används (time_now).

när du flyttade ut skriv() så gick kompileringen förbi det felet men stannar sedan på nästa, att time_now inte finns deklarerad.

var det verkligen _exakt_ samma felmeddelande du fick när du flyttade ut skriv()?
2019-03-05 20.14.20.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Henry »

Ja det blev exakt samma:

exit status 1
a function-definition is not allowed here before '{' token


Vilket ju inte hade någon logik alls när den nu fanns utanför både loop och setup. Time_now ändrade jag innan jag lade upp koden men hade kopierat den innan dess så det kom inte med, men när jag testade den efteråt, oavsett var jag placerade skriv(), så blev det alltså exakt det samma nästan som om den låst sig på något vis.

När jag flyttade den till setup efter någon nämnde att det var så det skulle se ut, så var det förstås det samma, när jag sedan flyttade ut skriv() från allt så var det ändock samma och det var förstås då jag började undra vad fan som föregick. Jag skulle tagit en film på det för det fanns ingen sans och reson.

Efter att jag nu ominstallerade allt så upptäckte jag dock att jag installerat Arduino katalogen utanför Program (x86) mappen vilket den ville som standard, jag vet inte om detta kan få något flash grej att flippa på något vis men har mina tvivel men än så länge funkar det i alla fall, so far...
Shimonu
Inlägg: 295
Blev medlem: 21 oktober 2015, 22:44:33

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Shimonu »

Tror många har varit i samma situation där inget verkar stämma men det finns oftast en enkel förklaring som man bara blivit blind för. Något tecken som är fel eller man jobbar inte i den filen som man tror man jobbar i. Det kan ibland ligga kvar artefakter som inte byggs om och länkas in. Jag skulle satsa stora belopp på att du antingen gjort något litet fel eller att det fanns något byggfel.
Borre
Inlägg: 4570
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Borre »

Posta koden som inte fungerar direkt här så kan vi kolla om det verkligen stämmer, så slipper du installera om och hålla på.
Du kan för övrigt har programmet var som helst.

Gällande millis så rullar den mycket riktigt på, men du måste fortfarande uppdatera din variabel med aktuell tid. I din kod gör du det bara en gång.
Jämför med att du skriver på en papperslapp tid= kollar på klockan och skriver aktuell tid, tex tid=21:56. En minut senare står det ju fortfarande tid=21:56 på din lapp, du måste alltså kolla klockan igen och uppdatera tiden.
metric
Inlägg: 766
Blev medlem: 16 maj 2010, 11:04:52

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av metric »

Men skriv funktionen utanför precis som setup, sen i loop funktionen anropar du skriv.
Användarvisningsbild
GastonDeVille
EF Sponsor
Inlägg: 1976
Blev medlem: 24 oktober 2013, 20:36:07
Ort: Småland - lite utanför Gränna

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av GastonDeVille »

Jag trodde också att det var fel på programmet men jag hade varit så listig och döpt om en mapp för att hålla isär... ja, och så undrade jag varför det förbxx☆☆ programmet inte hittade filen som jag försökte trycka ner i halsen på den :vissla:
Kastade ut skiten, gjorde en ominstallation och fick ta allt från början och "felet" var kvar :lol:
Sen var det nån sorts skum uppdatering som behövdes göras inifrån programmets bibliotek för att en av filerna skulle lira. Nybörjarproblematik men det mesta går att googla fram. Inte så enkelt innan man kommit in i tugget.
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Henry »

Borre: det är redan ominstallerat för en tid sedan och Arduino IDE har funkat sedan dess. Programmet fungerar inte som det var tänkt då jag misstolkat millis funktionen lite hur den kunde användas utan det är som sagt bara typ ett tidtagarur som räknar konstant upp hela tiden så tiden är det den är i den sekunden man kollar den vilket kan vara precis vad som helst, men det fanns en vänlig själ som kom med lite kodförslag även om det finns bra exempel på Arduino som jag tänkte använda annars.

Koden är bara ett test för att se om en grej kunde fungera som jag tänkt så det är inget jag kommer att använda längre fram eller så som den är nu, men för en gång skull så kompilerades den i alla fall korrekt.

metric: vet men oavsett vad jag skrev det innan så ville den inte kompilera men detta hela verkar funka som det skall nu, än så länge.

Shimonu: Inte alls omöjligt kan bara inte fatta vad i så fall, även utan något alls förutom skriv() och allt annat bortkommenterat med // så blev det det samma även om det var satt utanför allt. Men det funkar i alla fall nu och jag tänkte skicka in en buggrapport men kan inte återskapa det igen, det är ju den nyaste versionen och även nyaste flash installerat så kanske något där som inte lirat helt med vartannat.
Shimonu
Inlägg: 295
Blev medlem: 21 oktober 2015, 22:44:33

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Shimonu »

Du behöver väldigt mycket kött på benen, konkret bevis och ett sätt att reproducera felet innan du börjar fundera på att buggrapportera. Det är väldigt duktiga människor som utvecklar verktygen och kompilatorerna. Det har också körts av sjukt många i väldigt lång tid vilket ökar förtroendet för sånna enkla buggar. Du bör alltså första verkligen utforska alla fel du kan tänkas ha gjort först. Då gäller det också att ha erfarenhet att veta vilka fel man kan göra.
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Henry »

Absolut och då det inte gick att repetera det efter ominstallationen så hoppade jag förstås också över det.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av sodjan »

Grundproblemet är att *alla* dina kodexempel som du har visat är
uppenbart fel och ger det felmeddelande som du har rapporterat.
Du får nog acceptera att kompilatorn har rätt och du har fel... :-)

Sen så har du *skrivit* att du även har testat med de ändringar som
har föreslagits, men du har inte visat det, så vitt jag kan se, utan
fortsatt att visa exempel med samma fel ("funktion i funktion").

> och Arduino IDE har funkat sedan dess...

Gjorde det inte det innan? Det var väl ett kompileringsfel du fick?
Inte något fel med själva utvecklingsmiljön?

> Absolut och då det inte gick att repetera det efter ominstallationen...

Det beror helt säkert på att du inte har kvar den version som strulade
och då du nu kör så är din koden korrekt. Det har säkert inte ett dugg
med ominstallationen att göra.

> sodjan: om jag sade att jag testat koden med funktionen enbart och
> testat att lägga den överallt där det går så hade det varit fruktansvärt
> dumt att ödsla folks tid genom att ljuga om det.

Skulle aldrig falla mig in för att anklaga dig för att ljuga! Däremot så är
det ju uppenbart att du inte har gjort det som du skriver att du har gjort.
Du *tror* helt säkert det, men så är det högst sannolikt inte. Det betyder
självklart inte att någon *ljuger*. Just detta, att *tro* att man har gjort
en sak (och påstå det), men faktiskt inte ha gjort det, är *såå* vanligt.
Att bara posta en ett enkelt exempel som visar det, brukar lösa problemet.

> När jag flyttade den till setup efter någon nämnde att det var så det skulle se ut...

Jag har kollat samtliga inlägg i hela tråden och ingenstans påstås det att
skriv() funktionen ska ligga inne *i* setup(). Kan du citera var du såg det?
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av Henry »

Jag uppfattar definitivt koden nedan som att den skall ligga i setup.
Shimonu skrev:Det är för att du gör fel!

Såhär ska det se ut!

Kod: Markera allt

void setup() {

}

void skriv() 
{
    lcd.print("Funkar");
    delay(500);
    lcd.clear();
}

void loop() {
  // put your main code here, to run repeatedly:

}

Men ingen av varianterna kompilerades oavsett var de placerades och jag gjorde det stora misstaget förstår jag nu att inte ta en bild/film på de varianterna som jag testade utan lade bara upp några fåtal, tyvärr blev det så vilket var väldigt synd.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Arduino, kopplar inte vad som är orsaken till felmeddela

Inlägg av sodjan »

I *den* koden avslutas setup() med en } (och setup() saknar helt innehåll).

skriv() ligger separat efter setup() och inte *i* setup().

Kod: Markera allt

void setup() { <=== Här börjar setup()

} <=== Här slutar setup()

void skriv()
{ <=== Här börjar skriv()
    lcd.print("Funkar");
    delay(500);
    lcd.clear();
} <=== Här slutar skriv()

void loop() { <=== Här börjar loop()
  // put your main code here, to run repeatedly:

} <=== Här slutar loop()
Jag har misstänkt att du hela tiden har missat en "}"...

Det är mycket troligt att du inte testade med en korrekt kod
förrens du klippta Johanos kod rakt av. Men sedan gick du
tillbaka till att göra samma fel igen.
Senast redigerad av sodjan 6 mars 2019, 01:16:33, redigerad totalt 2 gånger.
Skriv svar