cfredisded
Active member
Hi all,
I'm currently working on a project that will save a lot of variables. I'm using a teensy 3.6. It took me awhile to find where the issue was coming from, but it looks like when saving it wont save after byte 151. I made a simple version of the code that can reproduce the error.
Here's what the serial monitor shows after pressing the shift button then the ratio(save) button.
Here's the library in question..
https://playground.arduino.cc/Code/EEPROMex
https://github.com/thijse/Arduino-EEPROMEx
Any help would be greatly appreciated.
*edit*
changing
EEPROM.setMaxAllowedWrites(80);
to
EEPROM.setMaxAllowedWrites(100);
Doesnt change anything... still get the error with float42 and beyond.
I'm currently working on a project that will save a lot of variables. I'm using a teensy 3.6. It took me awhile to find where the issue was coming from, but it looks like when saving it wont save after byte 151. I made a simple version of the code that can reproduce the error.
Code:
#include <Bounce.h>
#include <EEPROMex.h>
float float1;
float float2;
bool bool3;
float float4;
float float5;
float float6;
float float7;
float float8;
float float9;
float float10;
float float11;
float float12;
float float13;
float float14;
float float15;
float float16;
float float17;
float float18;
float float19;
float float20;
float float21;
int int22;
int int23;
int int24;
float float25;
float float26;
float float27;
float float28;
float float29;
float float30;
float float31;
float float32;
float float33;
float float34;
float float35;
float float36;
float float37;
float float38;
int int39;
int int40;
float float41;
float float42;
float float43;
float float44;
bool bool45;
float MODquantizerLEFT;
const int shiftPin = 28;
Bounce SHIFTbutton = Bounce(shiftPin, 100); // 10 ms debounce
const int ratioPin = 27;
Bounce RATIObutton = Bounce(ratioPin, 100); // 10 ms debounce
void setup() {
EEPROM.setMaxAllowedWrites(80);
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(shiftPin, INPUT_PULLUP);
pinMode(ratioPin, INPUT_PULLUP);
EEPROM.setMemPool(0, EEPROMSizeTeensy3);
float1 = EEPROM.readFloat(5);
float2 = EEPROM.readFloat(1);
bool3 = EEPROM.readByte(1);
float4 = EEPROM.readFloat(9);
float5 = EEPROM.readFloat(13);
float6 = EEPROM.readFloat(17);
float7 = EEPROM.readFloat(21);
float8 = EEPROM.readFloat(25);
float9 = EEPROM.readFloat(29);
float10 = EEPROM.readFloat(33);
float11 = EEPROM.readFloat(37);
float12 = EEPROM.readFloat(41);
float13 = EEPROM.readFloat(45);
float14 = EEPROM.readFloat(49);
float15 = EEPROM.readFloat(53);
float16 = EEPROM.readFloat(57);
float17 = EEPROM.readFloat(61);
float18 = EEPROM.readFloat(65);
float19 = EEPROM.readFloat(69);
float20 = EEPROM.readFloat(73);
float21 = EEPROM.readFloat(77);
int22 = EEPROM.readInt(81);
int23 = EEPROM.readInt(83);
int24 = EEPROM.readInt(85);
float25 = EEPROM.readFloat(87);
float26 = EEPROM.readFloat(91);
float27 = EEPROM.readFloat(95);
float28 = EEPROM.readFloat(99);
float29 = EEPROM.readFloat(103);
float30 = EEPROM.readFloat(107);
float31 = EEPROM.readFloat(111);
float32 = EEPROM.readFloat(115);
float33 = EEPROM.readFloat(119);
float34 = EEPROM.readFloat(123);
float35 = EEPROM.readFloat(127);
float36 = EEPROM.readFloat(131);
float37 = EEPROM.readFloat(135);
float38 = EEPROM.readFloat(139);
int39 = EEPROM.readInt(143);
int40 = EEPROM.readInt(145);
float41 = EEPROM.readFloat(147);
float42 = EEPROM.readFloat(151);
float43 = EEPROM.readFloat(155);
float44 = EEPROM.readFloat(159);
bool45 = EEPROM.readByte(163);
}
void loop() { //START VOID LOOP
//SAVE START//////////////////////////////////////////////////////
if(RATIObutton.update()){
if (RATIObutton.fallingEdge()){
Serial.println("saved");
//EEPROM.updateFloat(147, float41);
EEPROM.updateFloat(5,float1);
EEPROM.updateFloat(1,float2);
EEPROM.updateByte(1,bool3);
EEPROM.updateFloat(13,float4);
EEPROM.updateFloat(9,float5);
EEPROM.updateFloat(17,float6);
EEPROM.updateFloat(21,float7);
EEPROM.updateFloat(25,float8);
EEPROM.updateFloat(29,float9);
EEPROM.updateFloat(33,float10);
EEPROM.updateFloat(37,float11);
EEPROM.updateFloat(41,float12);
EEPROM.updateFloat(45,float13);
EEPROM.updateFloat(49,float14);
EEPROM.updateFloat(53,float15);
EEPROM.updateFloat(57,float16);
EEPROM.updateFloat(61,float17);
EEPROM.updateFloat(65,float18);
EEPROM.updateFloat(69,float19);
EEPROM.updateFloat(73,float20);
EEPROM.updateFloat(77,float21);
EEPROM.updateInt(81,int22);
EEPROM.updateInt(83,int23);
EEPROM.updateInt(85,int24);
EEPROM.updateFloat(87,float25);
EEPROM.updateFloat(91,float26);
EEPROM.updateFloat(95,float27);
EEPROM.updateFloat(99,float28);
EEPROM.updateFloat(103,float29);
EEPROM.updateFloat(107,float30);
EEPROM.updateFloat(111,float31);
EEPROM.updateFloat(115,float32);
EEPROM.updateFloat(119,float33);
EEPROM.updateFloat(123,float34);
EEPROM.updateFloat(127,float35);
EEPROM.updateFloat(131,float36);
EEPROM.updateFloat(135,float37);
EEPROM.updateFloat(139,float38);
EEPROM.updateInt(143,int39);
EEPROM.updateInt(145,int40);
EEPROM.updateFloat(147,float41); // <-- THIS WORKS
EEPROM.updateFloat(151,float42); // <-- NOTHING FROM HERE FORWARD WORKS
EEPROM.updateFloat(154,float43);
EEPROM.updateFloat(159,float44);
EEPROM.updateByte(163,bool45);
float41 = EEPROM.readFloat(147);
Serial.println("float 41");
Serial.println(float41);
float42 = EEPROM.readFloat(151);
Serial.println("float 42");
Serial.println(float42);
}
}
//SAVE END////////////////////////////////////////////////////////
if(SHIFTbutton.update()){
if (SHIFTbutton.fallingEdge()){
float42 = .5000;
float41 = .5000;
Serial.println("float 41");
Serial.println(float41);
Serial.println("float 42");
Serial.println(float42);
}
}
}
Here's what the serial monitor shows after pressing the shift button then the ratio(save) button.
Code:
float 41
0.50
float 42
0.50
saved
float 41
0.50
float 42
ovf
Here's the library in question..
https://playground.arduino.cc/Code/EEPROMex
https://github.com/thijse/Arduino-EEPROMEx
Any help would be greatly appreciated.
*edit*
changing
EEPROM.setMaxAllowedWrites(80);
to
EEPROM.setMaxAllowedWrites(100);
Doesnt change anything... still get the error with float42 and beyond.
Last edited: