Go Down

Topic: Arduino Ide 1.8.2 comple error on file that previously worked. (Read 95 times) previous topic - next topic

ve3sjk

I have a file that is not my code, its code for controlling a 3d matrix display. I have updated my arduino to 1.8.2 and the code is for the chipkit uc32.

The code is throwing too many errors to list them all here, all the errors are the same basic problem.

here is the first subroutine that throws the error.

Code: [Select]


void displayCube(int side, int x, int y, int z, int color){
 sprite mySprite(side,side,side);
 mySprite.outline(color);
 mySprite.place = {x,y,z};
 mySprite.setIt();
 delay(50);
 mySprite.clearIt();
}





This is the error i get

Code: [Select]


m_Animations:89: error: assigning to an array from an initializer list

  mySprite.place = {x,y,z};





I am assuming that i would have to change the code to this to fix this error.


Code: [Select]


void displayCube(int side, int x, int y, int z, int color){
 sprite mySprite(side,side,side);
 mySprite.outline(color);

 mySprite.place [0] = x;
 mySprite.place [1] = y;
 mySprite.place [2] = z;

 mySprite.setIt();
 delay(50);
 mySprite.clearIt();
}



My question is what changed in the IDE to cause this error to start happening when the code would actually compile in earlier versions. i make the assumption it compile as is at some point otherwise it would NOT have been written this way in the first place.

Basically i would have to rewrite the entire file to fix every time an array is initialized in this old way with the braced comma separated list.

What version of the Arduino IDE allows arrays to be initialized the old way, as is stands now just about every example in the uc32 chipkit core fails to compile with these errors.




pert

I'm surprised that would have ever worked. You're not initializing the array, you can do this when initializing, for example:
Code: [Select]
byte place[] = {x,y,z};
is valid.

I had suspected this was related to the chipkit hardware package version, rather than Arduino IDE version, but I tried version 1.0.1 of the package, the oldest one available via Boards Manager and still couldn't set array values this way.

Which version of the Arduino IDE were you using previous to updating to 1.8.2?

Do you remember which version of the chipkit core you were using before? Did you update the version or reinstall after updating to Arduino IDE 1.8.2?

Please give the name of an included example that no longer compiles due to this issue.

ve3sjk

Most of the chipkit compile issues I am seeing are dependencies to plib.h which i understand is not included in the new chipkit core. In particular the web server example from diligent website. I was able to compile the example under MPIDE 0150 but not Arduino IDE. I did find a new example in the arduino ide that i was able to compile without the missing plib.h file.


i installed MPIDE version 0150 and i can now compile the above sketch without getting any of the past mentioned errors. This IDE apparently allows arrays to be assigned in the way shown above.

So it looks like i would have to rewrite the sketch to have it compile with the latest version of the Arduino with the chipkit core. Something i may do later since i can at least flash it onto the hardware as is using MPIDE 0150

pert

You could compare the compiler flags used in each IDE for those boards then when you find the one that allows that use of arrays you can add it to the platform.txt in the Arduino chipkit hardware package.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy