Tommy56:
Klar gibt es Unterschiede. Es sind völlig verschiedene Prozessoren.
Ohne den Code, in dem es hängt und die Info wo es hängt, wird Dir wohl keiner helfen können.
Gruß Tommy
Habe jetzt mal versucht es ein bisschen zu verschlanken. Weiß nicht ob ich wirklich alles bauche aber so geht es und der Fehler tritt auf.
Auf der SD Karte befindet sich die Datei INI.txt mit den interessanten Werten.
Also die Ausgabe bricht bei Intervallkri einfach ab.
Danke schon mal.
#include <Ethernet.h>
#include <SPI.h>
#include <SD.h>
#define SIGNALLEDPIN 8
//Pin an dem CS Port der SD || UNO->4
const int _iChipSelect = 4;
//Aus der INI-Datei ausgelesen Werte. Wie define's.
int NTC = 0, MOD = 0, HMD = 0;
int Intervall = 0, Intervallkri = 1;
int _iMaxTemp = 0, _iMinTemp = 0, _iMaxLuft = 0, _iMinLuft = 0;
double _dMaxLicht = 0, _dMinLicht = 0, _dMODUmrech = 0;
String _sInit;
String _sLegende;
//----------------------------------------Ethernet--------------------
// Mac-Adresse muss einzigartig sein
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x59, 0x67 };
// Netzwerkeinstellungen vom Arduino
IPAddress ip( 169, 254, 155, 2 );
IPAddress gateway( 169, 254, 155, 1 );
IPAddress subnet( 255, 255, 255, 0 );
// IP-Adresse vom Computer
IPAddress server( 169, 254, 155, 167 );
EthernetClient client;
EthernetClient dclient;
EthernetServer Eserver(3363);
char outBuf[128];
char outCount;
// change fileName to your file (8.3 format!)
String fileName = " ";
//SD Karte mit der INI-Datei
File myFile;
void setup()
{
//Startet die Serielle Verbindung zum Computer
Serial.begin(9600);
Serial.print("Initialisierung der SD Karte...");
//----------------------Ethernet----------------------------------------------
//Um die SD-Karte und die Ethernetverbindung trennen zu können
//digitalWrite(10, HIGH);
//Fehlermeldung wenn die Karte nicht gefunden wurde + LED daueran
if (!SD.begin(_iChipSelect)) {
Serial.println("Karte konnte nicht gefunden werden!");
digitalWrite(SIGNALLEDPIN, HIGH);
// don't do anything more:
while (1);
}
Serial.println("Karte initialisiert.");
Ethernet.begin(mac, ip, gateway, gateway, subnet);
digitalWrite(10, HIGH);
delay(1000);
Serial.println(F("Bitte Datum +.txt eingeben: (z.b. 20190428.txt)"));
//---------------------------------------------------------------------------
//Auslesen der INI-Datei und setzt die Anzahl der Sensoren
fINITDATEI();
}
void loop()
{
}
//Initialisierungsdatei
void fINITDATEI()
{
int i = 0;
int j = 1;
char *ptr;
char Init [400];
for (int z = 0; z <= 400; z++)
Init[z] = NULL;
Serial.println("-------");
Serial.println(Init);
Serial.println("-------");
myFile = SD.open("INI.txt");
if (!myFile)
{
Serial.println("SD Fehler");
//return 0;
}
else
Serial.println("INI.txt, gefunden:");
while (myFile.available())
{
char ltr = myFile.read();
if (ltr == ',')
ltr = '.';
Init [i++] = ltr;
}
Serial.println(Init);
_sInit = Init;
ptr = strtok(Init, "\n");
while (ptr != NULL)
{
ptr = strtok(NULL, "=");
//Serial.print(ptr);
j++;
if (j == 6)
NTC = atoi(ptr);
if (j == 7)
MOD = atoi(ptr);
if (j == 8)
HMD = atoi(ptr);
if (j == 9)
Intervall = atoi(ptr);
if (j == 10)
Intervallkri = atoi(ptr);
if (j == 11)
_dMODUmrech = atof(ptr);
if (j == 12)
_iMaxTemp = atoi(ptr);
if (j == 13)
_iMinTemp = atoi(ptr);
if (j == 14)
_iMaxLuft = atoi(ptr);
if (j == 15)
_iMinLuft = atoi(ptr);
if (j == 16)
_dMaxLicht = atof(ptr);
if (j == 17)
_dMinLicht = atof(ptr);
Serial.print("j=");
Serial.print(j);
Serial.print("=");
Serial.println(ptr);
//delay(100);
}
j = 0;
myFile.close();
Serial.println();
Serial.print("NTC = " );
Serial.println(NTC);
Serial.print("MOD = " );
Serial.println(MOD);
Serial.print("HMD = " );
Serial.println(HMD);
Serial.print("Zeit Intervall = " );
Serial.println(Intervall);
Serial.print("Zeit Intervallkri = " );
Serial.println(Intervallkri);
Serial.print("_dMODUmrech = " );
Serial.println(_dMODUmrech);
Serial.print("_iMaxTemp = " );
Serial.println(_iMaxTemp);
Serial.print("_iMinTemp = " );
Serial.println(_iMinTemp);
Serial.print("_iMaxLuft = " );
Serial.println(_iMaxLuft);
Serial.print("_iMinLuft = " );
Serial.println(_iMinLuft);
Serial.print("_dMaxLicht = " );
Serial.println(_dMaxLicht);
Serial.print("_dMinLicht = " );
Serial.println(_dMinLicht);
//Erste Zeile /Legende erzeugen
_sLegende = "Time";
for (int i = 0; i < NTC; i++)
{
_sLegende += "\t";
_sLegende += "NTC ";
_sLegende += i + 1;
_sLegende += "[°C]";
}
for (int i = 0; i < MOD; i++)
{
_sLegende += "\t";
_sLegende += "MOD ";
_sLegende += i + 1;
_sLegende += "[V]";
}
for (int i = 0; i < HMD; i++)
{
_sLegende += "\t";
_sLegende += "HMD ";
_sLegende += i + 1;
_sLegende += "[%]";
}
_sLegende += "\t RTC_Temp[°C]";
}
Initialisierung der SD Karte...Karte initialisiert.
13:54:12.763 -> Bitte Datum +.txt eingeben: (z.b. 20190428.txt)
13:54:12.830 -> -------
13:54:12.830 ->
13:54:12.830 -> -------
13:54:12.863 -> INI.txt, gefunden:
13:54:12.963 ->
13:54:12.963 -> [Sensoren]
13:54:12.997 -> NTC = 3
13:54:12.997 -> MOD = 2
13:54:12.997 -> HMD = 1
13:54:13.030 -> Intervall [s] = 10
13:54:13.063 -> Intervall kritisch [s] = 2
13:54:13.063 -> MOD Umrechnungsfaktor = 8.25
13:54:13.133 ->
13:54:13.133 -> [Grenzwerte]
13:54:13.133 -> Max. Temperatur = 38
13:54:13.168 -> Min. Temperatur = 15
13:54:13.203 -> Max. Luftfeuchte = 80
13:54:13.203 -> Min. Luftfeuchte = 20
13:54:13.238 -> Max. Lichtleistung = 1.00
13:54:13.272 -> Min. Lichtleistung = 0.01
13:54:13.307 -> j=2=Erzeugungs Datum
13:54:13.342 -> j=3= "21.06.2019 07:40:12"
13:54:13.410 ->
13:54:13.410 -> [Sensoren]
13:54:13.443 -> NTC
13:54:13.443 -> j=6= 3
13:54:13.443 -> MOD
13:54:13.476 -> j=7= 2
13:54:13.476 -> HMD
13:54:13.476 -> j=8= 1
13:54:13.476 -> Intervall [s]
13:54:13.509 -> j=9= 10
13:54:13.509 -> Intervall kritisch [s]
13:54:13.543 -> j=10= 2
13:54:13.543 -> MOD Umrechnungsfaktor
13:54:13.577 -> j=11= 8.25
13:54:13.610 ->
13:54:13.610 -> [Grenzwerte]
13:54:13.610 -> Max. Temperatur
13:54:13.645 -> j=12= 38
13:54:13.645 -> Min. Temperatur
13:54:13.678 -> j=13= 15
13:54:13.678 -> Max. Luftfeuchte
13:54:13.712 -> j=14= 80
13:54:13.712 -> Min. Luftfeuchte
13:54:13.745 -> j=15= 20
13:54:13.745 -> Max. Lichtleistung
13:54:13.779 -> j=16= 1.00
13:54:13.779 -> Min. Lichtleistung
13:54:13.812 -> j=17= 0.01
13:54:13.846 -> j=18=
13:54:13.846 ->
13:54:13.846 -> NTC = 3
13:54:13.846 -> MOD = 2
13:54:13.846 -> HMD = 1
13:54:13.881 -> Zeit Intervall = 10
13:54:13.881 -> Zeit Intervallkri