Folgender Code sucht an verschiedenen Pins ob mind. ein DS18B20 Sensor vorhanden ist.
Wurde einer gefunden, bleibt die Klasse inistialisiert.
Frage:
Kann sich das mal jemand von euch begnadeten C++ Programmierern anschauen, ob die Pointer richtig initialisiert und gelöscht werden? Mir gehts um Programmstabilität...
OneWire *oneWire;
DallasTemperature *sensors;
uint8_t SENSOR_PINs[] = {A0, A1, A2, A3}; // PINs an denen DS18B20 bzw DHT22 gesucht werden soll
// DS18B20 suchen
display.setCursor(20, 8 + i * 8);
if (!sensors) // Wenn DS nicht initialisiert wurde dann PIN testen
{
oneWire = new OneWire(SENSOR_PINs[i]);
sensors = new DallasTemperature(oneWire);
sensors->begin();
uint8_t tmpAnz = sensors->getDeviceCount();
if (tmpAnz > 0) continue;
delete oneWire;
delete sensors;
sensors = 0;
digitalWrite(SENSOR_PINs[i], HIGH);
pinMode(SENSOR_PINs[i], INPUT);
}