fout meldingen ESP 01
12 berichten
• Pagina 1 van 2 • 1, 2
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
fout meldingen ESP 01
Ik werk met een ESP-10, een RGB ledstrip WS2812B en de FastLED library.
Ik wil een sketch uploaden naar een ESP-01, maar krijg meerdere foutmeldingen die er allemaal ongeveer zo uitzien:
C:\Users\Games\AppData\Local\Temp\ccEmIaxA.s:879684: Error: operand 2 of 'l32r' has out of range value '4294335164'
Het probleem lijkt te ontstaan wanneer ik teveel cases toevoeg aan een switch. Het programma lijkt dan te groot te worden, maar als ik kijk naar het percentage wat de ROM vult, dan zit ik nog maar op 42%.
Bij 72 leds kan ik max. 100 cases toevoegen, bij 144 leds max 200 cases zonder foutmeldingen te krijgen.
Dat is dus wel consequent, maar dan snap ik nog niet waarom de compiler niet gewoon aangeeft dat de sketch te groot is.
Heeft iemand enig idee wat hier aan de hand is? deze foutmelding ook gehad en opgelost? of moet ik gewoon de sketch niet te groot maken en minder cases toevoegen?
Dit is een stukje van de sketch. De hele sketch is veel te groot om hier te plaatsen.
cpp code
Ik wil een sketch uploaden naar een ESP-01, maar krijg meerdere foutmeldingen die er allemaal ongeveer zo uitzien:
C:\Users\Games\AppData\Local\Temp\ccEmIaxA.s:879684: Error: operand 2 of 'l32r' has out of range value '4294335164'
Het probleem lijkt te ontstaan wanneer ik teveel cases toevoeg aan een switch. Het programma lijkt dan te groot te worden, maar als ik kijk naar het percentage wat de ROM vult, dan zit ik nog maar op 42%.
Bij 72 leds kan ik max. 100 cases toevoegen, bij 144 leds max 200 cases zonder foutmeldingen te krijgen.
Dat is dus wel consequent, maar dan snap ik nog niet waarom de compiler niet gewoon aangeeft dat de sketch te groot is.
Heeft iemand enig idee wat hier aan de hand is? deze foutmelding ook gehad en opgelost? of moet ik gewoon de sketch niet te groot maken en minder cases toevoegen?
Dit is een stukje van de sketch. De hele sketch is veel te groot om hier te plaatsen.
cpp code
void (loop)
{
FastLED.show();
crntMs = millis();
if ((unsigned long)(crntMs - prvsMS) >= Time)
{
prvsMS = crntMs;
fx = fx + 1;
}
switch (fx)
{
case 0:
leds[143] = CHSV(248, x, x);
leds[142] = CHSV(248, x, x);
leds[141] = CHSV(247, x, x);
leds[140] = CHSV(247, x, x);
leds[139] = CHSV(247, x, x);
leds[138] = CHSV(247, x, x);
leds[137] = CHSV(246, x, x);
leds[136] = CHSV(246, x, x);
leds[135] = CHSV(246, x, x);
leds[134] = CHSV(246, x, x);
leds[133] = CHSV(245, x, x);
leds[132] = CHSV(245, x, x);
leds[131] = CHSV(245, x, x);
leds[130] = CHSV(244, x, x);
leds[129] = CHSV(244, x, x);
leds[128] = CHSV(244, x, x);
leds[127] = CHSV(244, x, x);
leds[126] = CHSV(244, x, x);
leds[125] = CHSV(243, x, x);
leds[124] = CHSV(243, x, x);
leds[123] = CHSV(243, x, x);
leds[122] = CHSV(242, x, x);
leds[121] = CHSV(242, x, x);
leds[120] = CHSV(242, x, x);
leds[119] = CHSV(242, x, x);
leds[118] = CHSV(241, x, x);
leds[117] = CHSV(241, x, x);
leds[116] = CHSV(241, x, x);
leds[115] = CHSV(240, x, x);
leds[114] = CHSV(240, x, x);
leds[113] = CHSV(240, x, x);
leds[112] = CHSV(240, x, x);
leds[111] = CHSV(239, x, x);
leds[110] = CHSV(239, x, x);
leds[109] = CHSV(239, x, x);
leds[108] = CHSV(238, x, x);
leds[107] = CHSV(238, x, x);
leds[106] = CHSV(238, x, x);
leds[105] = CHSV(238, x, x);
leds[104] = CHSV(237, x, x);
leds[103] = CHSV(237, x, x);
leds[102] = CHSV(237, x, x);
leds[101] = CHSV(236, x, x);
leds[100] = CHSV(236, x, x);
leds[99] = CHSV(236, x, x);
leds[98] = CHSV(235, x, x);
leds[97] = CHSV(235, x, x);
leds[96] = CHSV(235, x, x);
leds[95] = CHSV(234, x, x);
leds[94] = CHSV(234, x, x);
leds[93] = CHSV(234, x, x);
leds[92] = CHSV(234, x, x);
leds[91] = CHSV(233, x, x);
leds[90] = CHSV(233, x, x);
leds[89] = CHSV(233, x, x);
leds[88] = CHSV(232, x, x);
leds[87] = CHSV(232, x, x);
leds[86] = CHSV(232, x, x);
leds[85] = CHSV(232, x, x);
leds[84] = CHSV(231, x, x);
leds[83] = CHSV(231, x, x);
leds[82] = CHSV(231, x, x);
leds[81] = CHSV(230, x, x);
leds[80] = CHSV(230, x, x);
leds[79] = CHSV(230, x, x);
leds[78] = CHSV(230, x, x);
leds[77] = CHSV(229, x, x);
leds[76] = CHSV(229, x, x);
leds[75] = CHSV(229, x, x);
leds[74] = CHSV(228, x, x);
leds[73] = CHSV(228, x, x);
leds[72] = CHSV(228, x, x);
leds[71] = CHSV(227, x, x);
leds[70] = CHSV(227, x, x);
leds[69] = CHSV(227, x, x);
leds[68] = CHSV(226, x, x);
leds[67] = CHSV(226, x, x);
leds[66] = CHSV(226, x, x);
leds[65] = CHSV(226, x, x);
leds[64] = CHSV(225, x, x);
leds[63] = CHSV(225, x, x);
leds[62] = CHSV(225, x, x);
leds[61] = CHSV(224, x, x);
leds[60] = CHSV(224, x, x);
leds[59] = CHSV(224, x, x);
leds[58] = CHSV(224, x, x);
leds[57] = CHSV(224, x, x);
leds[56] = CHSV(223, x, x);
leds[55] = CHSV(223, x, x);
leds[54] = CHSV(223, x, x);
leds[53] = CHSV(222, x, x);
leds[52] = CHSV(222, x, x);
leds[51] = CHSV(222, x, x);
leds[50] = CHSV(222, x, x);
leds[49] = CHSV(222, x, x);
leds[48] = CHSV(221, x, x);
leds[47] = CHSV(221, x, x);
leds[46] = CHSV(221, x, x);
leds[45] = CHSV(220, x, x);
leds[44] = CHSV(220, x, x);
leds[43] = CHSV(220, x, x);
leds[42] = CHSV(220, x, x);
leds[41] = CHSV(219, x, x);
leds[40] = CHSV(219, x, x);
leds[39] = CHSV(219, x, x);
leds[38] = CHSV(219, x, x);
leds[37] = CHSV(219, x, x);
leds[36] = CHSV(218, x, x);
leds[35] = CHSV(218, x, x);
leds[34] = CHSV(218, x, x);
leds[33] = CHSV(218, x, x);
leds[32] = CHSV(218, x, x);
leds[31] = CHSV(217, x, x);
leds[30] = CHSV(217, x, x);
leds[29] = CHSV(217, x, x);
leds[28] = CHSV(216, x, x);
leds[27] = CHSV(216, x, x);
leds[26] = CHSV(216, x, x);
leds[25] = CHSV(216, x, x);
leds[24] = CHSV(216, x, x);
leds[23] = CHSV(216, x, x);
leds[22] = CHSV(215, x, x);
leds[21] = CHSV(215, x, x);
leds[20] = CHSV(215, x, x);
leds[19] = CHSV(215, x, x);
leds[18] = CHSV(215, x, x);
leds[17] = CHSV(214, x, x);
leds[16] = CHSV(214, x, x);
leds[15] = CHSV(214, x, x);
leds[14] = CHSV(214, x, x);
leds[13] = CHSV(214, x, x);
leds[12] = CHSV(214, x, x);
leds[11] = CHSV(214, x, x);
leds[10] = CHSV(213, x, x);
leds[9] = CHSV(213, x, x);
leds[8] = CHSV(213, x, x);
leds[7] = CHSV(213, x, x);
leds[6] = CHSV(213, x, x);
leds[5] = CHSV(213, x, x);
leds[4] = CHSV(213, x, x);
leds[3] = CHSV(212, x, x);
leds[2] = CHSV(212, x, x);
leds[1] = CHSV(212, x, x);
leds[0] = CHSV(212, x, x);
break;
Advertisement
Re: fout meldingen ESP 01
Je weet toch hoe het gaat? Laat de hele sketch zien, of anders krijg je van die flauwe grappen over een kristallen bol.
Nu ik het toch over mijn kristallen bol heb, die lag al een tijdje stoffig in een doos. Nadat ik hem had weer glimmend had schoongepoetst, zag ik in mijn kristallen bol dat je in het bestand "ccEmlaxA.ino" een variabele "l32r" hebt, die een "long" is. Je probeert die variabele te vullen met de waarde "4294335164", maar die waarde is te groot en past niet in een long. Misschien dat ik vaag nog ergens de getallen "632132" zie, maar dat hangt er van af of hoe het berekend wordt.
Het is mogelijk dat de compiler tegen een grens aan loopt, maar dat kan ik me niet voorstellen. Honderd of tweehonderd cases mag geen probleem zijn. Als de code te groot wordt voor een jump-tabel, dan neem ik aan dat de compiler een lange-jump-tabel maakt.
Ik zie geen patroon in de getallen waarmee je het 'led' array vult. De getallen zouden in een array gedeclareerd kunnen worden. Maar de getallen kunnen ook gemaakt worden met een klein array
cpp code
Nu ik het toch over mijn kristallen bol heb, die lag al een tijdje stoffig in een doos. Nadat ik hem had weer glimmend had schoongepoetst, zag ik in mijn kristallen bol dat je in het bestand "ccEmlaxA.ino" een variabele "l32r" hebt, die een "long" is. Je probeert die variabele te vullen met de waarde "4294335164", maar die waarde is te groot en past niet in een long. Misschien dat ik vaag nog ergens de getallen "632132" zie, maar dat hangt er van af of hoe het berekend wordt.
Het is mogelijk dat de compiler tegen een grens aan loopt, maar dat kan ik me niet voorstellen. Honderd of tweehonderd cases mag geen probleem zijn. Als de code te groot wordt voor een jump-tabel, dan neem ik aan dat de compiler een lange-jump-tabel maakt.
Ik zie geen patroon in de getallen waarmee je het 'led' array vult. De getallen zouden in een array gedeclareerd kunnen worden. Maar de getallen kunnen ook gemaakt worden met een klein array
cpp code
byte leds[144];
void setup()
{
Serial.begin(9600);
Serial.println("Vul het array");
const byte startValue = 212;
const byte repetitions[] = { 4, 7, 7, 5, 6, 3, 5, 5, 4, 3, 5, 3, 5, 3, 4, 3,
3, 3, 4, 3, 4, 3, 4, 3, 3, 3, 4, 3, 4, 3, 4, 3,
5, 3, 4, 4, 2 };
byte value = startValue;
int index = 0;
for( int i=0; i<sizeof( repetitions); i++)
{
for( int j=0; j<repetitions[i]; j++)
{
leds[index] = value;
index++;
}
value++;
}
Serial.println("Laat het array zien");
char buffer[40];
for( int i=(sizeof(leds) - 1); i>= 0; i--)
{
sprintf( buffer, "leds[%d] = CHSV(%d, x, x);", i, int(leds[i]));
Serial.println( buffer);
}
}
void loop()
{
}
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: fout meldingen ESP 01
Bedankt voor je reactie.
Het bestand wat aangemaakt wordt in de temp kan ik niet terugvinden op de hdd. Misschien verdwijnt het ook weer aangezien het een temp folder is.
Betreft de long die te groot wordt, misschien is dat waar het probleem gezocht moet worden.
In de loop heb ik het volgende staan:
cpp code
daarmee rol ik door de cases heen.
Kan het zijn dat bij teveel cases de crntMS en / of prvsMS te groot wordt?
Ergens lijkt het me onwaarschijnlijk dat dit het probleem is aangezien ik met 72 leds 100 cases kan gebruiken en met 144 leds 200.
Maar bij meer cases en leds gaat het fout.
Het bestand wat aangemaakt wordt in de temp kan ik niet terugvinden op de hdd. Misschien verdwijnt het ook weer aangezien het een temp folder is.
Betreft de long die te groot wordt, misschien is dat waar het probleem gezocht moet worden.
In de loop heb ik het volgende staan:
cpp code
crntMs = millis();
if ((unsigned long)(crntMs - prvsMS) >= Time)
{
// "Reset" timer
prvsMS = crntMs;
fx = fx + 1;
}
daarmee rol ik door de cases heen.
Kan het zijn dat bij teveel cases de crntMS en / of prvsMS te groot wordt?
Ergens lijkt het me onwaarschijnlijk dat dit het probleem is aangezien ik met 72 leds 100 cases kan gebruiken en met 144 leds 200.
Maar bij meer cases en leds gaat het fout.
Re: fout meldingen ESP 01
Ik zal mijn kristallen bol eens flink schudden... ik zie nu dat 'l32r' ook een assembly instructie kan zijn.
Het is inderdaad vreemd dat je met 72 leds 100 cases kunt gebruiken en bij 144 leds 200 cases.
Waarschijnlijk zit er ergens een fout in de sketch, of misschien heb je ergens een oude ontwikkelomgeving vandaan waar nog bugs in zitten.
Begint dat gedoe met die kristallen bol intussen al een beetje irritant te worden ? Of zal ik er nog een schepje bovenop doen
Ken je deze website: https://snippets-r-us.com/, die is speciaal gemaakt voor deze situaties.
Zonder de code te zien, kan ik weinig beginnen. Ik weet niet eens het type van 'crntMs' en 'prvMS'.
Het is inderdaad vreemd dat je met 72 leds 100 cases kunt gebruiken en bij 144 leds 200 cases.
Waarschijnlijk zit er ergens een fout in de sketch, of misschien heb je ergens een oude ontwikkelomgeving vandaan waar nog bugs in zitten.
Begint dat gedoe met die kristallen bol intussen al een beetje irritant te worden ? Of zal ik er nog een schepje bovenop doen
Ken je deze website: https://snippets-r-us.com/, die is speciaal gemaakt voor deze situaties.
Zonder de code te zien, kan ik weinig beginnen. Ik weet niet eens het type van 'crntMs' en 'prvMS'.
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: fout meldingen ESP 01
cpp code
#include <FastLED.h>
// Fastled
#define NUM_LEDS 144
int BRIGHTNESS = 50; // Max. 255
CRGB leds[NUM_LEDS];
#define PIN 0 // GPIO 0
#define button 2 // GPIO 2
int knockSensor = 1; // GPIO 1 (TX)
// Button states and debounce
int buttonState = 0;
int lastButtonState = HIGH;
unsigned long lastDebounceTime = 0;
// Switch variable
int fx = 0;
// Color variables
int b = 0;
int c = 0;
int x = 255;
// Piezo sensor
int knockcount = 1;
int fade = 10;
byte val = 0;
int THRESHOLD = 2;
// Millis timer variables
unsigned long crntMs;
unsigned long prvsMS;
unsigned long Time = 3;
void buttonRead()
{
int reading = digitalRead(button);
if (reading != lastButtonState)
lastDebounceTime = millis();
if ((millis() - lastDebounceTime) > 50)
{
if (reading != buttonState)
{
buttonState = reading;
if (buttonState == LOW)
{
fx = 0;
}
}
}
lastButtonState = reading;
}
void setup()
{
// Button Pullup
pinMode(button, INPUT_PULLUP);
pinMode(knockSensor, INPUT);
attachInterrupt(digitalPinToInterrupt(button), buttonRead, FALLING);
// Fastled
FastLED.addLeds<WS2811, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
}
void chckSnsr()
{
val = analogRead(knockSensor);
if (val > THRESHOLD)
{
leds[0] = CRGB::White;
leds[1] = CRGB::White;
leds[2] = CRGB::White;
leds[3] = CRGB::White;
leds[4] = CRGB::White;
leds[5] = CRGB::White;
leds[6] = CRGB::White;
leds[7] = CRGB::White;
leds[8] = CRGB::White;
leds[9] = CRGB::White;
leds[10] = CRGB::White;
leds[11] = CRGB::White;
leds[12] = CRGB::White;
leds[13] = CRGB::White;
leds[14] = CRGB::White;
leds[15] = CRGB::White;
leds[16] = CRGB::White;
leds[17] = CRGB::White;
leds[18] = CRGB::White;
leds[19] = CRGB::White;
leds[20] = CRGB::White;
leds[21] = CRGB::White;
leds[22] = CRGB::White;
leds[23] = CRGB::White;
leds[24] = CRGB::White;
leds[25] = CRGB::White;
leds[26] = CRGB::White;
leds[27] = CRGB::White;
leds[28] = CRGB::White;
leds[29] = CRGB::White;
leds[30] = CRGB::White;
leds[31] = CRGB::White;
leds[32] = CRGB::White;
leds[33] = CRGB::White;
leds[34] = CRGB::White;
leds[35] = CRGB::White;
leds[36] = CRGB::White;
leds[37] = CRGB::White;
leds[38] = CRGB::White;
leds[39] = CRGB::White;
leds[40] = CRGB::White;
leds[41] = CRGB::White;
leds[42] = CRGB::White;
leds[43] = CRGB::White;
leds[44] = CRGB::White;
leds[45] = CRGB::White;
leds[46] = CRGB::White;
leds[47] = CRGB::White;
leds[48] = CRGB::White;
leds[49] = CRGB::White;
leds[40] = CRGB::White;
leds[41] = CRGB::White;
leds[42] = CRGB::White;
leds[43] = CRGB::White;
leds[44] = CRGB::White;
leds[45] = CRGB::White;
leds[46] = CRGB::White;
leds[47] = CRGB::White;
leds[48] = CRGB::White;
leds[49] = CRGB::White;
leds[50] = CRGB::White;
leds[51] = CRGB::White;
leds[52] = CRGB::White;
leds[53] = CRGB::White;
leds[54] = CRGB::White;
leds[55] = CRGB::White;
leds[56] = CRGB::White;
leds[57] = CRGB::White;
leds[58] = CRGB::White;
leds[59] = CRGB::White;
leds[60] = CRGB::White;
leds[61] = CRGB::White;
leds[62] = CRGB::White;
leds[63] = CRGB::White;
leds[64] = CRGB::White;
leds[65] = CRGB::White;
leds[66] = CRGB::White;
leds[67] = CRGB::White;
leds[68] = CRGB::White;
leds[69] = CRGB::White;
leds[70] = CRGB::White;
leds[71] = CRGB::White;
// Andere kant van de ledstrip
leds[72] = CRGB::White;
leds[73] = CRGB::White;
leds[74] = CRGB::White;
leds[75] = CRGB::White;
leds[76] = CRGB::White;
leds[77] = CRGB::White;
leds[78] = CRGB::White;
leds[79] = CRGB::White;
leds[80] = CRGB::White;
leds[81] = CRGB::White;
leds[82] = CRGB::White;
leds[83] = CRGB::White;
leds[84] = CRGB::White;
leds[85] = CRGB::White;
leds[86] = CRGB::White;
leds[87] = CRGB::White;
leds[88] = CRGB::White;
leds[89] = CRGB::White;
leds[90] = CRGB::White;
leds[91] = CRGB::White;
leds[92] = CRGB::White;
leds[93] = CRGB::White;
leds[94] = CRGB::White;
leds[95] = CRGB::White;
leds[96] = CRGB::White;
leds[97] = CRGB::White;
leds[98] = CRGB::White;
leds[99] = CRGB::White;
leds[100] = CRGB::White;
leds[101] = CRGB::White;
leds[102] = CRGB::White;
leds[103] = CRGB::White;
leds[104] = CRGB::White;
leds[105] = CRGB::White;
leds[106] = CRGB::White;
leds[107] = CRGB::White;
leds[108] = CRGB::White;
leds[109] = CRGB::White;
leds[110] = CRGB::White;
leds[111] = CRGB::White;
leds[112] = CRGB::White;
leds[113] = CRGB::White;
leds[114] = CRGB::White;
leds[115] = CRGB::White;
leds[116] = CRGB::White;
leds[117] = CRGB::White;
leds[118] = CRGB::White;
leds[119] = CRGB::White;
leds[120] = CRGB::White;
leds[121] = CRGB::White;
leds[122] = CRGB::White;
leds[123] = CRGB::White;
leds[124] = CRGB::White;
leds[125] = CRGB::White;
leds[126] = CRGB::White;
leds[127] = CRGB::White;
leds[128] = CRGB::White;
leds[129] = CRGB::White;
leds[130] = CRGB::White;
leds[131] = CRGB::White;
leds[132] = CRGB::White;
leds[133] = CRGB::White;
leds[134] = CRGB::White;
leds[135] = CRGB::White;
leds[136] = CRGB::White;
leds[137] = CRGB::White;
leds[138] = CRGB::White;
leds[139] = CRGB::White;
leds[140] = CRGB::White;
leds[141] = CRGB::White;
leds[142] = CRGB::White;
leds[143] = CRGB::White;
delay(fade);
BRIGHTNESS = 140;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 130;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 120;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 110;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 100;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 90;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 80;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 70;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 60;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 50;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 40;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 30;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 20;
FastLED.setBrightness( BRIGHTNESS );
delay(fade);
BRIGHTNESS = 10;
FastLED.setBrightness( BRIGHTNESS );
delay(100);
BRIGHTNESS = 150;
FastLED.setBrightness( BRIGHTNESS );
}
}
void loop()
{
chckSnsr();
buttonRead();
FastLED.show();
crntMs = millis();
if ((unsigned long)(crntMs - prvsMS) >= Time)
{
// "Reset" timer
prvsMS = crntMs;
fx = fx + 1;
// Place code here
}
if (fx > 254)
{
fx = 0;
}
switch (fx)
{
case 0:
leds[143] = CHSV(254, x, x);
leds[142] = CHSV(234, x, x);
leds[141] = CHSV(254, x, x);
leds[140] = CHSV(254, x, x);
leds[139] = CHSV(254, x, x);
leds[138] = CHSV(254, x, x);
leds[137] = CHSV(254, x, x);
leds[136] = CHSV(b, x, x);
leds[135] = CHSV(0, x, x);
leds[134] = CHSV(254, x, x);
leds[133] = CHSV(0, x, x);
leds[132] = CHSV(b, x, x);
leds[131] = CHSV(254, x, x);
leds[130] = CHSV(254, x, x);
leds[129] = CHSV(254, x, x);
leds[128] = CHSV(254, x, x);
leds[127] = CHSV(254, x, x);
leds[126] = CHSV(254, x, x);
leds[125] = CHSV(254, x, x);
leds[124] = CHSV(254, x, x);
leds[123] = CHSV(254, x, x);
leds[122] = CHSV(254, x, x);
leds[121] = CHSV(254, x, x);
leds[120] = CHSV(254, x, x);
leds[119] = CHSV(254, x, x);
leds[118] = CHSV(254, x, x);
leds[117] = CHSV(254, x, x);
leds[116] = CHSV(254, x, x);
leds[115] = CHSV(254, x, x);
leds[114] = CHSV(254, x, x);
leds[113] = CHSV(254, x, x);
leds[112] = CHSV(254, x, x);
leds[111] = CHSV(254, x, x);
leds[110] = CHSV(254, x, x);
leds[109] = CHSV(254, x, x);
leds[108] = CHSV(254, x, x);
leds[107] = CHSV(254, x, x);
leds[106] = CHSV(254, x, x);
leds[105] = CHSV(254, x, x);
leds[104] = CHSV(254, x, x);
leds[103] = CHSV(254, x, x);
leds[102] = CHSV(254, x, x);
leds[101] = CHSV(254, x, x);
leds[100] = CHSV(254, x, x);
leds[99] = CHSV(254, x, x);
leds[98] = CHSV(254, x, x);
leds[97] = CHSV(254, x, x);
leds[96] = CHSV(254, x, x);
leds[95] = CHSV(234, x, x);
leds[94] = CHSV(b, x, x);
leds[93] = CHSV(b, x, x);
leds[92] = CHSV(b, x, x);
leds[91] = CHSV(b, x, x);
leds[90] = CHSV(b, x, x);
leds[89] = CHSV(b, x, x);
leds[88] = CHSV(b, x, x);
leds[87] = CHSV(b, x, x);
leds[86] = CHSV(b, x, x);
leds[85] = CHSV(b, x, x);
leds[84] = CHSV(b, x, x);
leds[83] = CHSV(b, x, x);
leds[82] = CHSV(b, x, x);
leds[81] = CHSV(b, x, x);
leds[80] = CHSV(b, x, x);
leds[79] = CHSV(b, x, x);
leds[78] = CHSV(b, x, x);
leds[77] = CHSV(b, x, x);
leds[76] = CHSV(b, x, x);
leds[75] = CHSV(b, x, x);
leds[74] = CHSV(b, x, x);
leds[73] = CHSV(b, x, x);
leds[72] = CHSV(234, x, x);
leds[71] = CHSV(254, x, x);
leds[70] = CHSV(254, x, x);
leds[69] = CHSV(254, x, x);
leds[68] = CHSV(254, x, x);
leds[67] = CHSV(254, x, x);
leds[66] = CHSV(b, x, x);
leds[65] = CHSV(0, x, x);
leds[64] = CHSV(254, x, x);
leds[63] = CHSV(0, x, x);
leds[62] = CHSV(b, x, x);
leds[61] = CHSV(254, x, x);
leds[60] = CHSV(254, x, x);
leds[59] = CHSV(254, x, x);
leds[58] = CHSV(254, x, x);
leds[57] = CHSV(254, x, x);
leds[56] = CHSV(254, x, x);
leds[55] = CHSV(254, x, x);
leds[54] = CHSV(254, x, x);
leds[53] = CHSV(254, x, x);
leds[52] = CHSV(254, x, x);
leds[51] = CHSV(254, x, x);
leds[50] = CHSV(254, x, x);
leds[49] = CHSV(254, x, x);
leds[48] = CHSV(254, x, x);
leds[47] = CHSV(254, x, x);
leds[46] = CHSV(254, x, x);
leds[45] = CHSV(254, x, x);
leds[44] = CHSV(254, x, x);
leds[43] = CHSV(254, x, x);
leds[42] = CHSV(254, x, x);
leds[41] = CHSV(254, x, x);
leds[40] = CHSV(254, x, x);
leds[39] = CHSV(254, x, x);
leds[38] = CHSV(254, x, x);
leds[37] = CHSV(254, x, x);
leds[36] = CHSV(254, x, x);
leds[35] = CHSV(254, x, x);
leds[34] = CHSV(254, x, x);
leds[33] = CHSV(254, x, x);
leds[32] = CHSV(254, x, x);
leds[31] = CHSV(254, x, x);
leds[30] = CHSV(254, x, x);
leds[29] = CHSV(254, x, x);
leds[28] = CHSV(254, x, x);
leds[27] = CHSV(254, x, x);
leds[26] = CHSV(254, x, x);
leds[25] = CHSV(234, x, x);
leds[24] = CHSV(b, x, x);
leds[23] = CHSV(b, x, x);
leds[22] = CHSV(b, x, x);
leds[21] = CHSV(b, x, x);
leds[20] = CHSV(b, x, x);
leds[19] = CHSV(b, x, x);
leds[18] = CHSV(b, x, x);
leds[17] = CHSV(b, x, x);
leds[16] = CHSV(b, x, x);
leds[15] = CHSV(b, x, x);
leds[14] = CHSV(b, x, x);
leds[13] = CHSV(b, x, x);
leds[12] = CHSV(b, x, x);
leds[11] = CHSV(b, x, x);
leds[10] = CHSV(b, x, x);
leds[9] = CHSV(b, x, x);
leds[8] = CHSV(b, x, x);
leds[7] = CHSV(b, x, x);
leds[6] = CHSV(b, x, x);
leds[5] = CHSV(b, x, x);
leds[4] = CHSV(b, x, x);
leds[3] = CHSV(b, x, x);
leds[2] = CHSV(b, x, x);
leds[1] = CHSV(b, x, x);
leds[0] = CHSV(b, x, x);
break;
case 1:
leds[143] = CHSV(254, x, x);
leds[142] = CHSV(254, x, x);
leds[141] = CHSV(b, x, x);
leds[140] = CHSV(254, x, x);
leds[139] = CHSV(254, x, x);
leds[138] = CHSV(254, x, x);
leds[137] = CHSV(b, x, x);
leds[136] = CHSV(b, x, x);
leds[135] = CHSV(254, x, x);
leds[134] = CHSV(254, x, x);
leds[133] = CHSV(b, x, x);
leds[132] = CHSV(b, x, x);
leds[131] = CHSV(254, x, x);
leds[130] = CHSV(254, x, x);
leds[129] = CHSV(254, x, x);
leds[128] = CHSV(254, x, x);
leds[127] = CHSV(254, x, x);
leds[126] = CHSV(234, x, x);
leds[125] = CHSV(b, x, x);
leds[124] = CHSV(b, x, x);
leds[123] = CHSV(b, x, x);
leds[122] = CHSV(b, x, x);
leds[121] = CHSV(b, x, x);
leds[120] = CHSV(b, x, x);
leds[119] = CHSV(b, x, x);
leds[118] = CHSV(234, x, x);
leds[117] = CHSV(0, x, x);
leds[116] = CHSV(b, x, x);
leds[115] = CHSV(b, x, x);
leds[114] = CHSV(254, x, x);
leds[113] = CHSV(254, x, x);
leds[112] = CHSV(254, x, x);
leds[111] = CHSV(254, x, x);
leds[110] = CHSV(b, x, x);
leds[109] = CHSV(254, x, x);
leds[108] = CHSV(253, x, x);
leds[107] = CHSV(253, x, x);
leds[106] = CHSV(253, x, x);
leds[105] = CHSV(253, x, x);
leds[104] = CHSV(253, x, x);
leds[103] = CHSV(253, x, x);
leds[102] = CHSV(253, x, x);
leds[101] = CHSV(253, x, x);
leds[100] = CHSV(253, x, x);
leds[99] = CHSV(253, x, x);
leds[98] = CHSV(253, x, x);
leds[97] = CHSV(253, x, x);
leds[96] = CHSV(253, x, x);
leds[95] = CHSV(253, x, x);
leds[94] = CHSV(b, x, x);
leds[93] = CHSV(b, x, x);
leds[92] = CHSV(b, x, x);
leds[91] = CHSV(b, x, x);
leds[90] = CHSV(b, x, x);
leds[89] = CHSV(b, x, x);
leds[88] = CHSV(b, x, x);
leds[87] = CHSV(b, x, x);
leds[86] = CHSV(b, x, x);
leds[85] = CHSV(b, x, x);
leds[84] = CHSV(b, x, x);
leds[83] = CHSV(b, x, x);
leds[82] = CHSV(b, x, x);
leds[81] = CHSV(b, x, x);
leds[80] = CHSV(b, x, x);
leds[79] = CHSV(b, x, x);
leds[78] = CHSV(b, x, x);
leds[77] = CHSV(b, x, x);
leds[76] = CHSV(b, x, x);
leds[75] = CHSV(b, x, x);
leds[74] = CHSV(b, x, x);
leds[73] = CHSV(b, x, x);
leds[72] = CHSV(254, x, x);
leds[71] = CHSV(b, x, x);
leds[70] = CHSV(254, x, x);
leds[69] = CHSV(254, x, x);
leds[68] = CHSV(254, x, x);
leds[67] = CHSV(b, x, x);
leds[66] = CHSV(b, x, x);
leds[65] = CHSV(254, x, x);
leds[64] = CHSV(254, x, x);
leds[63] = CHSV(b, x, x);
leds[62] = CHSV(b, x, x);
leds[61] = CHSV(254, x, x);
leds[60] = CHSV(254, x, x);
leds[59] = CHSV(254, x, x);
leds[58] = CHSV(254, x, x);
leds[57] = CHSV(254, x, x);
leds[56] = CHSV(234, x, x);
leds[55] = CHSV(b, x, x);
leds[54] = CHSV(b, x, x);
leds[53] = CHSV(b, x, x);
leds[52] = CHSV(b, x, x);
leds[51] = CHSV(b, x, x);
leds[50] = CHSV(b, x, x);
leds[49] = CHSV(b, x, x);
leds[48] = CHSV(234, x, x);
leds[47] = CHSV(0, x, x);
leds[46] = CHSV(b, x, x);
leds[45] = CHSV(b, x, x);
leds[44] = CHSV(254, x, x);
leds[43] = CHSV(254, x, x);
leds[42] = CHSV(254, x, x);
leds[41] = CHSV(254, x, x);
leds[40] = CHSV(b, x, x);
leds[39] = CHSV(254, x, x);
leds[38] = CHSV(253, x, x);
leds[37] = CHSV(253, x, x);
leds[36] = CHSV(253, x, x);
leds[35] = CHSV(253, x, x);
leds[34] = CHSV(253, x, x);
leds[33] = CHSV(253, x, x);
leds[32] = CHSV(253, x, x);
leds[31] = CHSV(253, x, x);
leds[30] = CHSV(253, x, x);
leds[29] = CHSV(253, x, x);
leds[28] = CHSV(253, x, x);
leds[27] = CHSV(253, x, x);
leds[26] = CHSV(253, x, x);
leds[25] = CHSV(253, x, x);
leds[24] = CHSV(b, x, x);
leds[23] = CHSV(b, x, x);
leds[22] = CHSV(b, x, x);
leds[21] = CHSV(b, x, x);
leds[20] = CHSV(b, x, x);
leds[19] = CHSV(b, x, x);
leds[18] = CHSV(b, x, x);
leds[17] = CHSV(b, x, x);
leds[16] = CHSV(b, x, x);
leds[15] = CHSV(b, x, x);
leds[14] = CHSV(b, x, x);
leds[13] = CHSV(b, x, x);
leds[12] = CHSV(b, x, x);
leds[11] = CHSV(b, x, x);
leds[10] = CHSV(b, x, x);
leds[9] = CHSV(b, x, x);
leds[8] = CHSV(b, x, x);
leds[7] = CHSV(b, x, x);
leds[6] = CHSV(b, x, x);
leds[5] = CHSV(b, x, x);
leds[4] = CHSV(b, x, x);
leds[3] = CHSV(b, x, x);
leds[2] = CHSV(b, x, x);
leds[1] = CHSV(b, x, x);
leds[0] = CHSV(b, x, x);
break;
// En zo 254 cases (past niet in 1 post, maar zien er allemaal zo uit als case 0 en 1) in totaal.
}
}
Re: fout meldingen ESP 01
Dus ik kan de sketch nog steeds niet zelf compileren
Ik zie een paar kleine dingen, maar dat kan het probleem niet zijn.
Het lijkt er op dat de compiler tegen een grens aan loopt. Dat zou heel vreemd zijn. De compiler mag zo'n fout niet hebben.
Die kleine dingen is bijvoorbeeld de waarde van analogRead() in een 'byte' stoppen en dan vergelijken met een integer. Of vergeten om 'fx' een 'volatile' te maken. Verder heb ik te weinig kennis van ESP8266 en de FastLED library om er meer over te zeggen.
Iemand anders op dit forum vond een fout bij Arduino: http://arduinoforum.nl/viewtopic.php?f=9&t=2454. Dus het kan gebeuren dat je tegen iets aanloopt, dat nog niemand eerder heeft gehad
Het enige dat ik kan verzinnen is om de compiler te vertellen om wel of geen jump tabel te gebruiken voor het switch-statement.
Je kunt bovenin de sketch dit zetten:
En dan een van de twee kiezen door bij een van de twee even de commentaar-dingen "//" weg te halen.
Ik zie een paar kleine dingen, maar dat kan het probleem niet zijn.
Het lijkt er op dat de compiler tegen een grens aan loopt. Dat zou heel vreemd zijn. De compiler mag zo'n fout niet hebben.
Die kleine dingen is bijvoorbeeld de waarde van analogRead() in een 'byte' stoppen en dan vergelijken met een integer. Of vergeten om 'fx' een 'volatile' te maken. Verder heb ik te weinig kennis van ESP8266 en de FastLED library om er meer over te zeggen.
Iemand anders op dit forum vond een fout bij Arduino: http://arduinoforum.nl/viewtopic.php?f=9&t=2454. Dus het kan gebeuren dat je tegen iets aanloopt, dat nog niemand eerder heeft gehad
Het enige dat ik kan verzinnen is om de compiler te vertellen om wel of geen jump tabel te gebruiken voor het switch-statement.
Je kunt bovenin de sketch dit zetten:
- Code: Alles selecteren
// #pragma GCC optimize("-fjump-tables")
// #pragma GCC optimize("-fno-jump-tables")
En dan een van de twee kiezen door bij een van de twee even de commentaar-dingen "//" weg te halen.
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: fout meldingen ESP 01
Dus ik kan de sketch nog steeds niet zelf compileren
[url]
https://drive.google.com/file/d/1Igmm-V ... sp=sharing[/url]
Bij deze, had pastebin geprobeerd, maar die accepteert slechts 512 Kbytes aan code voor niet pro users.
Die kleine dingen is bijvoorbeeld de waarde van analogRead() in een 'byte' stoppen en dan vergelijken met een integer. Of vergeten om 'fx' een 'volatile' te maken.
Weet jij of er een website is waar je dit soort info kunt vinden, wat wel en niet mag, kan, moet, hoe het werkt?
Verder heb ik te weinig kennis van ESP8266 en de FastLED library om er meer over te zeggen.
Esp8266 en ledstrips zijn leuk om mee te spelen.
Iemand anders op dit forum vond een fout bij Arduino: viewtopic.php?f=9&t=2454. Dus het kan gebeuren dat je tegen iets aanloopt, dat nog niemand eerder heeft gehad
Is het inmiddels ook echt opgelost?
Het enige dat ik kan verzinnen is om de compiler te vertellen om wel of geen jump tabel te gebruiken voor het switch-statement.
Je kunt bovenin de sketch dit zetten:
Code:
Alles selecteren
// #pragma GCC optimize("-fjump-tables")
// #pragma GCC optimize("-fno-jump-tables")
Het ziet er naar uit dat dit het helaas ook niet oplost
zowel met jumptable en zonder jumptable getest.
Dezelfde foutcode komt op:
- Code: Alles selecteren
In file included from C:\Users\Games\Documents\Blitz oefenzwaard\002_Design_001_test_5_OTA_Blynk_2\002_Design_001_test_5_OTA_Blynk_2.ino:4:0:
C:\Users\Games\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.001
# pragma message "FastLED version 3.002.001"
^
In file included from C:\Users\Games\Documents\Arduino\libraries\FastLED/FastLED.h:65:0,
from C:\Users\Games\Documents\Blitz oefenzwaard\002_Design_001_test_5_OTA_Blynk_2\002_Design_001_test_5_OTA_Blynk_2.ino:4:
C:\Users\Games\Documents\Arduino\libraries\FastLED/fastspi.h:110:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
^
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s: Assembler messages:
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:8213: Error: jump target out of range; no usable trampoline found
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:52779: Error: operand 1 of 'j' has out of range value '261914'
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:57704: Error: operand 1 of 'j' has out of range value '261911'
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:134947: Error: operand 2 of 'l32r' has out of range value '4294705136'
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:134981: Error: operand 2 of 'l32r' has out of range value '4294705116'
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:135015: Error: operand 2 of 'l32r' has out of range value '4294705096'
C:\Users\Games\AppData\Local\Temp\cc8KDFt2.s:135050: Error: operand 2 of 'l32r' has out of range value '4294705072'
etc etc
Re: fout meldingen ESP 01
Dat probleem dat iemand anders vond (met de round() functie) is niet opgelost Het Arduino team begrijpt nog steeds niet wat standaard 'c' en 'c++' is. Ik vind het ongelofelijk. Daar hebben anderen zo hun best voor gedaan en Arduino helpt de standaard om zeep
Met hulp van mijn kristallen bol, deed ik het volgende:
Arduino IDE 1.8.7
Bij "Bestand / Voorkeuren / Meer Board Managers URL's" dit ingevuld: "http://arduino.esp8266.com/stable/package_esp8266com_index.json".
Bij "Board Beheer" de "esp8266 bij ESP8266 Community" geïnstalleerd. Dat is versie 2.4.2.
Jouw sketch van Google Drive gehaald.
Met "Bibliotheek Beheer" de "FastLED", "esp8266_mdns by mrdunk", "ESP8266OTA by Chip", "Blynk by Volodymyr Shymanskyy" geïnstalleerd.
Daarmee lukte het niet om het te compileren.
Dus vervolgens zat ik maar te poetsen en te turen in mijn kristallen bol, maar mijn kristallen bol bleef erg mistig.
Waarschijnlijk is mijn kristallen bol een namaak. Ik heb hem maar weggedaan. Zonder een goede kristallen bol kan ik je niet helpen. Dus ik geef het op
Probeer je code eens anders te schrijven. Het lijkt er sterk op dat je over de grenzen van geheugen of van de compiler bent gegaan.
Je kunt bijvoorbeeld een paar globale 'const' array van getallen declareren en die in een for-loop naar de 'led[]' array kopiëren.
Eventueel kun je alle stukje codes in aparte functies plaatsen.
Met hulp van mijn kristallen bol, deed ik het volgende:
Arduino IDE 1.8.7
Bij "Bestand / Voorkeuren / Meer Board Managers URL's" dit ingevuld: "http://arduino.esp8266.com/stable/package_esp8266com_index.json".
Bij "Board Beheer" de "esp8266 bij ESP8266 Community" geïnstalleerd. Dat is versie 2.4.2.
Jouw sketch van Google Drive gehaald.
Met "Bibliotheek Beheer" de "FastLED", "esp8266_mdns by mrdunk", "ESP8266OTA by Chip", "Blynk by Volodymyr Shymanskyy" geïnstalleerd.
Daarmee lukte het niet om het te compileren.
Dus vervolgens zat ik maar te poetsen en te turen in mijn kristallen bol, maar mijn kristallen bol bleef erg mistig.
Waarschijnlijk is mijn kristallen bol een namaak. Ik heb hem maar weggedaan. Zonder een goede kristallen bol kan ik je niet helpen. Dus ik geef het op
Probeer je code eens anders te schrijven. Het lijkt er sterk op dat je over de grenzen van geheugen of van de compiler bent gegaan.
Je kunt bijvoorbeeld een paar globale 'const' array van getallen declareren en die in een for-loop naar de 'led[]' array kopiëren.
Eventueel kun je alle stukje codes in aparte functies plaatsen.
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: fout meldingen ESP 01
Vreemd dat hij niet compiled bij jou.
Zijn ongeveer ook de libraries die ik gebruik. Ik heb er denk ik zelfs minder geinstalleerd staan, maar wel van dezelfde makers.
Kies je Generic Esp2866 als board?
Maar goed, je workaround werkt in ieder geval
Nu er meerdere switches in functies geplaatst zijn, kan ik hem wel compilen en uploaden
Echt top, mega thanks!
https://drive.google.com/file/d/1zVDYhq7DtC8srpaoX9JYW6w1v0-Kb3LY/view?usp=sharing
Zijn ongeveer ook de libraries die ik gebruik. Ik heb er denk ik zelfs minder geinstalleerd staan, maar wel van dezelfde makers.
Kies je Generic Esp2866 als board?
Maar goed, je workaround werkt in ieder geval
Nu er meerdere switches in functies geplaatst zijn, kan ik hem wel compilen en uploaden
Echt top, mega thanks!
https://drive.google.com/file/d/1zVDYhq7DtC8srpaoX9JYW6w1v0-Kb3LY/view?usp=sharing
Re: fout meldingen ESP 01
Met de "Generic ESP2866 Module" kom ik inderdaad wat verder.
Het blijkt een tekortkoming van de GCC compiler te zijn.
Ik kan andere projecten vinden met dezelfde foutmelding, en ook daar hebben ze workaround moeten maken, net als jij.
Je nieuwe code compileren duurt nog best lang. Na ruim 4 minuten krijg ik een waarschuwing dat de linker een bepaald deel niet in een segment krijgt.
Haal je die code bij Google Drive ook weer weg en wijzig je nog even alle wachtwoorden die je in de sketch had staan en nu openbaar zijn ?
Wat dacht je van zo iets:
cpp code
Dat is toch wel een ietsje korter dan 144 regels om de hele 'leds[]' array met Black te vullen.
Het blijkt een tekortkoming van de GCC compiler te zijn.
Ik kan andere projecten vinden met dezelfde foutmelding, en ook daar hebben ze workaround moeten maken, net als jij.
Je nieuwe code compileren duurt nog best lang. Na ruim 4 minuten krijg ik een waarschuwing dat de linker een bepaald deel niet in een segment krijgt.
Haal je die code bij Google Drive ook weer weg en wijzig je nog even alle wachtwoorden die je in de sketch had staan en nu openbaar zijn ?
Wat dacht je van zo iets:
cpp code
for( int i=0; i<144; i++)
{
leds[i] = CRGB::Black;
}
Dat is toch wel een ietsje korter dan 144 regels om de hele 'leds[]' array met Black te vullen.
12 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten