commander_keen hat geschrieben:Warum kommt der uC aus dem Tritt, wenn er "keinen Blinkvorgang" erkennt? Das ist doch der Standardzustand 95% der Zeit?
Für den Mikrocontroller nicht. Es gibt vier Fälle in der Software. Kein, linker, rechter, beide Blinkerhebel. Erst, wenn irgendein Hebel gedrückt ist, bekommt der Mikrocontroller überhaupt Spannnung, vorher ist der tot. Wenn der nun startet und innerhalb x-ms keinen Hebel erkennt, geht er von einem Fehler oder unnatürlichen Zustand aus und vermeidet die Komfortblinkerfunktion.
Erkennt er links, dann speichert er das, erkennt er rechts, speichert er das ab. Bei beiden Blinkerhebeln lasse ich ihn in einer ewigen Schleife laufen, in der er nichts mehr tut und aus der er auch nie wieder rauskommt.
Wenn er nun aber keinen erkennt, zuvor aber links oder rechts erkannt hat überprüft er die Zeit, die bereits abgelaufen ist und entscheidet dann ob es noch im Rahmen ist oder zu spät -> Komfort oder nicht Komfort.
Das heißt, dass wenn er einer bestimmten Zeit noch nichts erkannt hat, dann wird er auch nichts mehr tun, weil er von einem Fehler ausgeht.
Update:
Komfortblinker heute im Eigenversuch getestet. Paar Feinheiten noch die man korrigieren muss, funktioniert aber.
Die Zeitspanne in der ich den Hebel wieder loslassen muss ist etwas unpraktikabel, komischerweise aber auch manchmal noch nach 1-2 Sekunden, dass er auf eine Komfortfunktion reagiert. Da habe ich auch so eine Vermutung warum, werde ich kontrollieren. Außerdem muss ich wohl noch mal die Schwellen kontrollieren, in denen er auf die einzelnen Hebel reagiert, denn er funktioniert nur mit laufendem Motor. Ich vermute die Bordspannung ist dann zu niedrig und ich habe das Problem, dass er die Hebel nicht mehr zuverlässig erkennt. Wobei er dann beim rechten zumindest noch den linken erkennen sollte (Weil die Spannung vom rechten höher als vom linken am Ausgang ist und er dann bei zu niedrig langsam in die Schwelle vom linken rutschen müsste).
Ich werde das gleich mal testen während ich die Versorgungsspannung stark verändere und schauen ob er dann noch auf links oder rechts reagiert. Außerdem muss ich die Blinkzeit anpassen. 3x find ich schon ok, aber er schaltet meist solang, dass er kurz ein 4. Aufleuchten zeigt.
Edit: Ich habe leider das Problem, dass die Messung stark schwankt. Warum auch immer (versuche ich noch herauszufinden) schwankt die Spannung am Eingang zum Blinkerrelais sehr stark. Warum weiß ich noch nicht. Teilweise so, dass sich die Hebel überschneiden.
Da ein Kondensator an der Stelle keine Option ist muss ich es entweder per Software filtern oder ich finde heraus warum es so instabil ist.