Sida 1 av 2
Buggig compiler arduino IDE?
Postat: 15 april 2019, 08:52:03
av EasyRider
Jag satt på arduino IDE (windows) och hackade kod och stötte på ett problem. Jag har för mig att det buggade på deklareringen av variabler.
Läste på nätet och fick reda på att det kan skilja mellan windows & linux. Installerade arduino IDE på linux, körde samma kod och detta utan några problem.
Nu har jag stött på ett annat väldigt mystisgt problem.
Jag kör följande ungefär kod vilket ligger i en metod anropad från main: (skrivet från minnet, Mitt minne....)
Kod: Markera allt
// _var = long
// this->variableToSet = long.
Serial.println(_var);
Serial.println(this->variableToSet);
this->variableToSet=_var;
Serial.println(_var);
Serial.println(this->variableToSet);
och får utskriften:
Koden ovan är som ni förstår inte kopierad exakt och jag söker egentligen inte en lösning här via forumet, utan mer en fråga om andra stött på liknande problem med att variabler inte går att sätta? Sätter jag värdet och direkt skriver ut det, så är det helt oförändrat. Jag kan inte förstå detta.
Har dessutom lagt till en minnesmätare som säger att det finns i runda slängar 700 Bytes kvar.
Kan detta vara en bugg i kompileraren igen eller kan minnet vara slut trots att det säger att så inte är fallet?
Vid bygget så meddelar arduinoIDE att 53% av minnet är använt.
Jag tror det är en riktig arduino Uno och inte en kinakopia.
/M
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 09:32:26
av Icecap
Man deklarerar väl variabler som long och ställer deras värde med ett värde och inte en variabeltyp.
Så att deklarera en variabel som long och sedan skriva:
Var = long;
är ju strunt.
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 09:40:57
av EasyRider
Njae nu var det ju inte de raderna som kördes. Det var för att visa typ och de var dessutom kommenterade för att visa att detta var information och inte kod.
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 09:44:59
av Icecap
OK.
En sak är säker: det är inte Arduinon som är felaktig, det är kompilern.
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 09:48:15
av EasyRider
Finns det något alternativ som är bättre som fungerar med arduino? Om detta åter är en bugg med kompilern så tröttnar jag...
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 09:50:58
av EasyRider
Skulle det gå att använda gcc eller liknande om det skulle fungera bättre??
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 10:01:48
av Lennart Aspenryd
Mycket är ju tycke och smak, kanske också vad man är van med!
Sök på alternativ IDÉ Arduino och du får mer än en handfull förslag.

Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 10:28:21
av Mr Andersson
Arduino använder redan gcc. Det är knappast en kompilatorbugg med variabelassignments eller miljontals programmerare skulle ha haft problem.
Kom tillbaka med exakt kod som inte fungerar så kan vi kanske hjälpa dig.
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 11:08:38
av hummel
Det är klart enklare att hjälpa om du kan lägga upp ett litet exempel som vi kan testa med exakta problemet som går att kompilera/generera felet med.
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 11:30:39
av EasyRider
Jo jag förstår det. Tyvärr kräver systemet massa kringutrustning för att komma till den punkt där felet uppstår. Jag skall se ifall jag kan minimera det hela och plocka bort kringutrustningen så det faktist går att köra ensamt.
Egentligen så var frågan från första början om detta var något som kändes igen, som någon annan stött på. Jag har ju väldigt svårt att tro att en kompilator skulle fallera på en sådan "enkel" detalj. Men det det i ryggsäcken att just windows-versionen bar på en kompileringsbugg som linuxversionen hade tagit sig förbi, så är det lätt att falla dig på att det är just det felet
Kompilatorer är ju skapade av människan och knappast kompletta. När månen står i linje med någon passande planet så kan även dessa bära på buggar
Jag skall se om jag kan plocka fram någon fungerande kod som rullar utan kringutr.
Tackar!
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 11:59:45
av sodjan
Om du inte kan reproducera felet med en 10-15 raders kod, så talar
mycket för att det inte är ett kompilator fel. Ditt exempel i första
inlägget var inte lätt att förstå. Vad betyder "long"? Att det finns
en annan variabel av typen long? Eller en konstant av typen long?
Och vad var det förväntade resultatet? Att det andra "-118912490"
skulle ha varit "1110"? Är ditt exempel detsamma som detta:
Kod: Markera allt
// _var = 1010
// this->variableToSet = -118912490
Serial.println(_var);
Serial.println(this->variableToSet);
this->variableToSet=_var;
Serial.println(_var);
Serial.println(this->variableToSet);
Hur ser definitionerna för "_var", "this" och "variableToSet" ut? Är de "long"?
I 99 fall av 100 så är misstänka kompilatorbuggar bara vanliga programbuggar...
Så fixa ett enkelt exempel som faktiskt går att kompilera rakt av och som visar
problem så går det ju att kolla på.
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 13:10:31
av SeniorLemuren
Vet inte riktigt om jag fattat hur du menar? Men detta funkar i alla fall utan problem i min Uno med IDE ver 1.8.4
Kod: Markera allt
long _var = 1010;
long variableToSet= -118912490;
void setup() {
Serial.begin(9600);
Serial.println(_var);
Serial.println(variableToSet);
variableToSet=_var;
Serial.println(_var);
Serial.println(variableToSet);
}
void loop() {
}
Resultat:
1010
-118912490
1010
1010
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 13:13:22
av EasyRider
Tack för att ni tar er tid.
Jo jag är medveten om att nästan alla "buggar" i själva verket är tack vare utvecklaren

Missförstå mig inte. Jag vill inte skylla på kompilatorn, men samtidigt när ens ideer tar slut så...
long:
https://www.arduino.cc/reference/en/lan ... ypes/long/
Jag förstår att det var fel att skriva in kommentaren men jag tänkte att om jag inte gör det så får jag frågan ifall det kan vara olika datatyper på variablerna
Mer korrekt kan vara att srkiva:
Kod: Markera allt
private
long variableToSet;
public:
void controller::updateValue(long _var);
Det är alltså innehåll i en klass som heter controller. och jag försöker "utifrån" ändra en variable som styr kontrollern. Metoden heter alltså i detta fallet "updateValue" där tidigare nämnd kod är skriven.
I exemplet var alltså tänkt att 1110 skulle skrivas de 2 sista raderna. Men värdet på "this->valueToSet" ändrades inte.
Innan ni lägger för mycket tid, så får jag ta och försöka minimera programmet och se om jag kan återskapa det.
Tack!
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 13:14:33
av EasyRider
Jo alltså, stand-alone så fungerar såklart koden. Men i det stora programmet så funkar det inte. Och jag har så svårt att förstå varför en variabel-sättning med direkt utskrivning av värdet inte fungerar.
Som sagt, jag skall se om jag kan plocka fram något mer användbart. Tack så mycklet för er tid!
Re: Buggig compiler arduino IDE?
Postat: 15 april 2019, 13:31:54
av sodjan
Ok.

Klasser och sånt ligger utanför min "comfort zone", men är vatabeln åtkomlig utifrån? Brukar inte "metoder" användas till sånt?