I do not understand ...
because if it goes in one sketch, on the other side wrong? (without changing hw)
then ... summarize quickly:
I have a huge project, and I am a trying library at a time;
now I'm grappling with one that uses external EEPROM (24LC512), the library automatically creates a global object itself, which in the first lines tries to read (obviously unsuccessfully) by the eeprom
sketch
#include <Wire.h>
#include <MemoryFree.h>
#include <myFloat.h>
#include <Sockets.h>
int nPs = 10;
int timesLen = 0;
short times[] = {MINUTES_BY_MIDNIGHT(0, 0), MINUTES_BY_MIDNIGHT(0, 10), MINUTES_BY_MIDNIGHT(0, 40), MINUTES_BY_MIDNIGHT(0, 59),
MINUTES_BY_MIDNIGHT(1, 15), MINUTES_BY_MIDNIGHT(1, 16), MINUTES_BY_MIDNIGHT(1, 49), MINUTES_BY_MIDNIGHT(1, 50),
MINUTES_BY_MIDNIGHT(2, 0), MINUTES_BY_MIDNIGHT(2, 14), MINUTES_BY_MIDNIGHT(2, 30), MINUTES_BY_MIDNIGHT(2, 40),
MINUTES_BY_MIDNIGHT(3, 0), MINUTES_BY_MIDNIGHT(3, 19), MINUTES_BY_MIDNIGHT(3, 31), MINUTES_BY_MIDNIGHT(3, 50),
MINUTES_BY_MIDNIGHT(4, 0), MINUTES_BY_MIDNIGHT(4, 20), MINUTES_BY_MIDNIGHT(4, 35), MINUTES_BY_MIDNIGHT(4, 54),
MINUTES_BY_MIDNIGHT(5, 0), MINUTES_BY_MIDNIGHT(5, 17), MINUTES_BY_MIDNIGHT(5, 39), MINUTES_BY_MIDNIGHT(5, 59),
MINUTES_BY_MIDNIGHT(6, 0), MINUTES_BY_MIDNIGHT(6, 16), MINUTES_BY_MIDNIGHT(6, 41), MINUTES_BY_MIDNIGHT(6, 45),
MINUTES_BY_MIDNIGHT(7, 0), MINUTES_BY_MIDNIGHT(7, 10), MINUTES_BY_MIDNIGHT(7, 44), MINUTES_BY_MIDNIGHT(7, 49),
MINUTES_BY_MIDNIGHT(8, 0), MINUTES_BY_MIDNIGHT(8, 11), MINUTES_BY_MIDNIGHT(8, 45), MINUTES_BY_MIDNIGHT(8, 47),
MINUTES_BY_MIDNIGHT(9, 0), MINUTES_BY_MIDNIGHT(9, 12), MINUTES_BY_MIDNIGHT(9, 46), MINUTES_BY_MIDNIGHT(9, 48),
MINUTES_BY_MIDNIGHT(10, 0), MINUTES_BY_MIDNIGHT(10, 13), MINUTES_BY_MIDNIGHT(10, 40), MINUTES_BY_MIDNIGHT(10, 41),
MINUTES_BY_MIDNIGHT(11, 0), MINUTES_BY_MIDNIGHT(11, 5), MINUTES_BY_MIDNIGHT(11, 42), MINUTES_BY_MIDNIGHT(11, 43),
MINUTES_BY_MIDNIGHT(12, 0), MINUTES_BY_MIDNIGHT(12, 19), MINUTES_BY_MIDNIGHT(12, 33), MINUTES_BY_MIDNIGHT(12, 49),
MINUTES_BY_MIDNIGHT(13, 0), MINUTES_BY_MIDNIGHT(13, 29), MINUTES_BY_MIDNIGHT(13, 35), MINUTES_BY_MIDNIGHT(13, 50),
MINUTES_BY_MIDNIGHT(14, 0), MINUTES_BY_MIDNIGHT(14, 24), MINUTES_BY_MIDNIGHT(14, 36), MINUTES_BY_MIDNIGHT(14, 38),
MINUTES_BY_MIDNIGHT(15, 0), MINUTES_BY_MIDNIGHT(15, 26), MINUTES_BY_MIDNIGHT(15, 37), MINUTES_BY_MIDNIGHT(15, 39),
MINUTES_BY_MIDNIGHT(16, 0), MINUTES_BY_MIDNIGHT(16, 22), MINUTES_BY_MIDNIGHT(16, 38), MINUTES_BY_MIDNIGHT(16, 50),
MINUTES_BY_MIDNIGHT(17, 0), MINUTES_BY_MIDNIGHT(17, 20), MINUTES_BY_MIDNIGHT(17, 39), MINUTES_BY_MIDNIGHT(17, 51),
MINUTES_BY_MIDNIGHT(18, 0), MINUTES_BY_MIDNIGHT(18, 11), MINUTES_BY_MIDNIGHT(18, 40), MINUTES_BY_MIDNIGHT(18, 55),
MINUTES_BY_MIDNIGHT(19, 0), MINUTES_BY_MIDNIGHT(19, 12), MINUTES_BY_MIDNIGHT(19, 43), MINUTES_BY_MIDNIGHT(19, 59),
MINUTES_BY_MIDNIGHT(20, 0), MINUTES_BY_MIDNIGHT(20, 13), MINUTES_BY_MIDNIGHT(20, 49), MINUTES_BY_MIDNIGHT(20, 51),
MINUTES_BY_MIDNIGHT(21, 0), MINUTES_BY_MIDNIGHT(21, 1), MINUTES_BY_MIDNIGHT(21, 41), MINUTES_BY_MIDNIGHT(21, 50),
MINUTES_BY_MIDNIGHT(22, 0), MINUTES_BY_MIDNIGHT(22, 15), MINUTES_BY_MIDNIGHT(22, 38), MINUTES_BY_MIDNIGHT(22, 57),
MINUTES_BY_MIDNIGHT(23, 0), MINUTES_BY_MIDNIGHT(23, 16), MINUTES_BY_MIDNIGHT(23, 39), MINUTES_BY_MIDNIGHT(23, 58),
-1};
const char *socketTypeTimed[] = {"LUCE", "POMPA", "FILTRO", "RISCALDATORE", "RISALITA", "SKIMMER", "VENTOLE", "REFRIGERATORE", "MANGIATOIA", "VENT. MOBILE", "LUCE LUNARE", "REATTORE", "KALKWASSER", "ELETTROV. REATTORE", "ELETTROV. VASCA", "RABBOCCO VASCA", "RABBOCCO SUMP", "ALTRO", "SPENTA", NULL};
const char *socketTypeProbed[] = {"RISCALDATORE SONDATO", "ELETTR. REATTORE SONDATA", "ELETTR. VASCA SONDATA", "RABB. VASCA SONDATO", "RABB. SUMP SONDATO", "REFRIG. SONDATO", "VENTOLE SONDATE", "LUCE LUNARE SONDATA", "ORP SONDATO", NULL};
void printTime(short time, char separator = ':'){
if(HOURS(time) < 10)
Serial.print(0);
Serial.print(HOURS(time));
Serial.print(separator);
if(MINUTES(time) < 10)
Serial.print(0);
Serial.print(MINUTES(time));
}
void typeSocketToString(int8_t type){
char toPrint[30];
toPrint[29] = '\0';
if(sock.isProbedSocket(type))
Serial.print(socketTypeProbed[type - HEATER_PROBED]);
else if(type >= 0 && type < HEATER_PROBED)
Serial.print(socketTypeProbed[type]);
else
Serial.print("unknown");
}
void makeSocket(uint8_t indexSocket){
int n = random() % MAX_SOCKET_SWITCH, socketType = random() % (ORP_PROBED + 1), j = 0;
Serial.println();
Serial.print(indexSocket);
Serial.print(") ");
typeSocketToString(socketType);
if(sock.setPowerSocket(indexSocket, socketType, 0) == CORRECT){
Serial.print("insert");
Serial.print(" : ");
Serial.println(n);
for(int i = 0; i < n; i++){
j = random() % timesLen;
printTime(times[j]);
Serial.print(" - ");
printTime(times[(j + 1) % timesLen]);
if(sock.addTime(indexSocket, times[j], times[(j + 1) % timesLen]) == CORRECT)
Serial.print("insert");
else
Serial.print("not insert");
}
}else
Serial.println("error");
}
int8_t printSocketPreview(uint8_t index){
int8_t nTurn = 0;
uint8_t row = 0;
Serial.println();
Serial.print((int) index + 1, row++);
Serial.print(": ");
typeSocketToString(sock.getPowerSocketType(index));
switch((nTurn = sock.getPowerSocketNumberSwitching(index))){
case(OFF_SOCKET):
Serial.println("ever off");
break;
case(PROBE_SOCKET):
Serial.print("threshold ");
Serial.println(sock.getPowerSocketThreshold(index));
break;
case(EVER_ON):
Serial.println("ever on");
break;
default:
Serial.print(nTurn);
Serial.println(" switching");
break;
}
return nTurn;
}
void printSockets(){
uint8_t j = 0, x = 0;
int nTurn = 0;
Serial.println();
Serial.print(sock.getPowerSocketNumber());
Serial.print(" total sockets");
for(j = 0; j < sock.getPowerSocketNumber(); j++){
for(x = 0, nTurn = printSocketPreview(j); x < nTurn; x++){
Serial.println();
Serial.print((int) x + 1);
Serial.print(") ");
printTime(sock.getPowerSocketSwitchOn(j, x));
Serial.print(" - ");
printTime(sock.getPowerSocketSwitchOff(j, x));
}
}
}
void setup(){
Serial.begin(9600);
Serial.println("Step 1");
while(times[timesLen] != -1)
timesLen++;
Serial.println("Step 2");
Serial.print("free memory = ");
Serial.print(freeMemory());
}
void loop(){
}