Hallo Gemainde,
kann der Arduino, genauer der Prozessor, unterscheiden, ob er mittels Reset-Pin oder durch einschalten der Betriebsspannung gestartet wurde?
Oder anders gefragt, wird ein Reset-Ereignis am Reset Pin in irgend nem Register hinterlegt, das man danach auswerten könnte?
Doch, mal grob, werde das jedoch wohl mit ner kleinen Hardware-Lösung angehen, falls ich feststellen sollte, dass es wiklich nicht ohne geht. Bin z.Zt. etwas in Zeitdruck da der Abgabetermin für das System naht, und kann mich deshalb nicht eingehender damit auseinander setzen. Ansonsten werde ich das System , zumindest mal vorerst, ohne dieser Bequemlichkeit in Betrieb nehmen.
Diese Option würde lediglich bei nem 'Warmstart' des Systems etwa 8 Sekunden im Start-Up einsparen, indem eine Kalibrierungsfahrt beim Warmstart unterbunden wird. Ist also daher nicht 'Überlebenswichtig'
Ich hab nur aufs geratewohl nachgefragt, ob vlt. Jemand grad weiss, 'ja, das wird in jenem Register eingetragen' oder eben 'nein, keine Chance, musst Du anders lösen'.
Danke für eure Bemühungen.
Aus meiner Sicht eine völlig unsinnige Idee.
Im Ansatz schon....
Denn:
Was soll der "Warmstart" bringen, wenn das System weiß, wo es ist.
Dann ist ein "Warmstart" unsinnig.
Und damit falsch.
Wenn ein "Warmstart" notwendig ist, dann doch nur, wenn das System seinen inneren Zustand verloren/vergessen, oder sonstwie als falsch erkannt hat.
Aber dann kannst du nicht die Werte einer vorherigen Referenzfahrt übernehmen, denn diese können/werden falsch sein.
Die Übernahmen von potentiell falschen Daten, nach einem "Warmstart", kann nur falsch sein.
Und damit eine unsinnige Idee.
Habe ich was übersehen?
Was ist überhaupt ein "Warmstart"?
Es geht nicht um die werte der Referenzfahrt. das homing wird selbstverständlich durchgeführt.
aber neben dem Homing ist hier, unter gewissen Umständen noch eine zusätzliche Kalibrierung notwendig, wie die Praxis leider gezeigt hat. Ich habe leider auf die Steiffigkeit der Maschine in dem Bereich keinen Einfluss.
Bisher wurde dieses Problem durch anpassen mehrerer Wertevon Hand, jeweils direkt nach Inbetriebnahme der Maschine , gelöst. ich hab das jetzt in der neuen Steuerung durch nen Sensor, durch dessen anfahren ein Offset gebildet wird, gelöst. Die gesamte maschine ist mobil.
Ein Warmstart wird nur sehr sehr selten nötig sein, wenn überhaupt, denn die Software läuft sehr stabil , seit ein par Monaten ununterbrochen. Bei einem Warmstart im Laufenden Betrieb dürfte die Maschine nicht bewegt worden sein, zumindest nicht so arg, dass ne neukalibrierung notwendig wird, wesswegen der Offset noch stimmen dürfte.
Deshalb dachte ich, dass in so einem Fall ein Kalibrieren des Systems nicht notwendig ist, sondern mit dem vorherigen Wert weiter laufen kann.
Mit Warmstart meine ich, wenn durch Druck auf den Resetknopf eines der Kontroller, nur ein Teil der Maschine neu gestartet wird. Die gesamte Steuerung besteht aus mehreren Kontrollern, die miteinander über über I2C schwätzen, jedoch nur dann, wenn dazu Anlass besteht. Es ist von der Software her problemlos möglich, jederzeit sowohl den Master, als auch den Slave enzeln neu zu starten, ohne dass das System durcheinander kommt.
Die Reset-Möglichkeit wurde nicht eingebaut, weil die Software nicht stabil laufen würde, sondern nur für den Fall der Fälle. Man kann sich beim Aufbau/Entwicklung/Programmierung so eines Systems noch soviel Mühe geben, es kann trotzdem zu ner jedezeit mal zu ner Störung kommen.
Sieht man ja auch bei Flugzeugen, da sind Systeme 3 und 4fach vorhanden, um zu verhindern, dass der Aufall eines Systems zu nem ernsthaften Problem führt, trotzdem fallen Flugzeuge sowohl wegen Hard- wie auch Software-Problemen vom Himmel.