Chyba czegoś nie zrozumiałemveeroos wrote: Tue Oct 28, 2025 8:54 am Sorki za odkopanie tematu (pewnie zaraz dostanę złotą łopatę), postanowiłem spojrzeć swoim okiem na program (kod źródłowy oczywiście udostępnię) i tak się zastanawiam, jeśli układ reaguje na przejście przez zero, to czy jest sens reagować wyzwalaniem przerwań na każdą zmianę stanu, nie lepiej na przykład na któreś że zbocz (narastające lub opadające) zmierzyć czas pomiędzy wywołaniem przerwania i jeśli będzie ono mniejsze niż częstotliwość w sieci to wtedy zmieniać stan (oczywiście uwzględniając drgania styków), Może się też zdarzyć że impuls będzie dłuższy bo ktoś bardzo powoli będzie przełączał włącznik (takie ekstremum) i można by było porównywać czas od ostatniego wykrycia zbocza do kolejnego dodając warunki jeśli czas jest mniejszy lub wiekszy niż częstotliwość w sieci to wtedy zmień stan przekaźnika.
Dobrze myślę czy znowu chcę utrudniać sobie życie?![]()
Można by było w webserwerze jedynie ustawiać czas drgania styków. Co myślicie na ten pomysł? Wiem czasami mam głupie pomysły, ale to zawsze pomysły![]()
Nie widzę (w działaniu) różnicy pomiędzy wykrywaniem każdego przejścia a tylko np. narastającego zbocza, cała różnica będzie w czasie 2x.
Reszta jest jak piszesz, tj. mierzy czas i sprawdza czy jest pomiędzy warunkami filter i debounce.
Do tego jest kanał debugujący, który pokazuje jaki jest zmierzony czas tego przerwania dla celów kontrolno-konfiguracyjnych. Problem się pojawił, kiedy do tych dwóch zmiennych chciałem wstawić wartość konfigurowalną z webserwera. Nie chciało działać. Może to uda ci się ogarnąć.

