Hi, wahrscheinlich liegt es an meinen Boards mit ON/OFF-Controller. Da gibt es schon länger ein Problem welches ich hier beschrieben habe.
Und zwar so:
Pin Power, bei mir GPIO21, ist über eine Diode mit Pin ROTARYENCODER_BUTTON, bei mir GPIO39, verbunden. In der System.cpp habe ich den delay von 200 auf z.Zt.1800 geändert.
// switch off power
Power_PeripheralOff();
delay(1800);
#if defined (RFID_READER_TYPE_MFRC522_SPI) || defined (RFID_READER_TYPE_MFRC522_I2C) || defined(RFID_READER_TYPE_PN5180)
Rfid_Exit();
#endif
Damit bilde ich einen langen Tastendruck des ROTARYENCODER_BUTTON nach um das
zu erreichen . Ich habe momentan die Zeit auf 1,8 Sek. verringert weil solange der PIN „gedrückt“ ist kein erneutes Einschalten möglich ist. Die 1,8 Sek sind ganz praktikabel. Die Zeit muss größer sein als die mit dem Kondensator C_PDT ( Wert aktuell auch verkleinert) hardwaremäßig eingestellte Zeit.
Ich kann den neuen Code noch nicht komplett nachvollziehen , aber definitiv geht der Reboot wenn ich den GPIO21 (POWER) nicht verbunden habe. Dann kann ich natürlich auch nicht mehr ausschalten. Da dauert etwas zu lange, ein Verlängern des delay bringt aber nichts.
Kann da im Moment nicht weitermachen, da ich heute noch verreise.
VG
Nachtrag: Ich denke ich weiß woran es liegt. Bisher wurden der Restart in Web.cpp auslöst , ohne Power_PeriphelOff. Das ist jetzt anders. Für den Restart ist der delay(200) ok , beim Ausschalten brauche ich einen delay von ca. 2000. Ich werde es wenn ich zurück bin testen und entsprechend ändern. Leider weiß ich nicht ob es auch andere trifft die meine PCB verwenden. Dann müßte ein Flag gesetzt werden für Restart oder Shutdown und jeweils einer anderen Zeit. Zusätzlich ein
#define on_off_controller // e.g. LTC2954-1 , required because of trouble with Arduino >1.0.6