Arduino, kopplar inte vad som är orsaken till felmeddelandet
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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.
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
Här är funktionen skriv() definierad utanför (ovan) setup() och loop():
Här är skriv definierad i setup(), vilket inte är godkänt och ger dig ditt fel:
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().
Kod: Markera allt
void skriv()
{
// skrivkod
}
void setup()
{
// kod som ska köras en gång
}
void loop()
{
// kod som upprepas
skriv();
}
Kod: Markera allt
void setup()
{
// kod som ska köras en gång
void skriv()
{
// skrivkod
}
}
void loop()
{
// kod som upprepas
skriv();
}
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().
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
Tillåt mig komma med en gissning: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.
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()?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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...
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...
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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.
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
Men skriv funktionen utanför precis som setup, sen i loop funktionen anropar du skriv.
- 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
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
Kastade ut skiten, gjorde en ominstallation och fick ta allt från början och "felet" var kvar
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.
Kastade ut skiten, gjorde en ominstallation och fick ta allt från början och "felet" var kvar
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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.
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
Absolut och då det inte gick att repetera det efter ominstallationen så hoppade jag förstås också över det.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
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?
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?
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
Jag uppfattar definitivt koden nedan som att den skall ligga i setup.
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.
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.
Re: Arduino, kopplar inte vad som är orsaken till felmeddela
I *den* koden avslutas setup() med en } (och setup() saknar helt innehåll).
skriv() ligger separat efter setup() och inte *i* setup().
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.
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()
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.