Jak ktoś będzie czytał kod to będzie wiedział co i jak. W tym przypadku myląca trochę jest podpowiedź w IDE.
.
Ta kwestia przewijała się na forum ale faktycznie dla kogoś przy pierwszym zetknięciu się z tym może troszkę mylić.
Więc kończąc @SOYER Twoje zapytanie w tej kwestii to warto jasno napisać dla potomnych no i dla Ciebie skoro pytałeś.
drugi parametr ustawiamy true żeby był pullup i wtedy trzeci czyli InvertLogic zawsze true. InvertLogic ustawione true oznacza że robimy wyzwalanie podając "-" na GPIO. Jak ktoś potrzebuje wyzwalać stanem dodatnim, co w większości przypadków występuje np w przypadku przycisków dotykowych (domyślnie po dotknięciu podają stan wysoki) wtedy ustawiamy false, false.
Jeśli kogoś zastanawia po co w takim razie ten pullup skoro przy InvertLogic true i tak zawsze ma być pullup to wyglada to następująco. Nie koniecznie GPIO musi być przyciskiem. I jesśi mamy 100% pewności że podłączony np inny moduł ma już na tym połączeniu włączony pullup albo mamy np. zewnętrzny rezystor podciągający to tego pullupa nie musimy a nawet nie powinniśmy włączać.
Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, true, true);
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Przepraszam, ale nadal nie rozumiem co tu jest nieczytelne i mylące.
Czy możecie napisać co tam widzicie i w jaki sposób to odczytujecie, że wydaje się to nieintuicyjne?
Jak będę widział o co chodzi, to może znajdziemy jakieś lepsze nazwy czy parametry, aby to było czytelniejsze
Czy możecie napisać co tam widzicie i w jaki sposób to odczytujecie, że wydaje się to nieintuicyjne?
Jak będę widział o co chodzi, to może znajdziemy jakieś lepsze nazwy czy parametry, aby to było czytelniejsze
Najlepsze suple dla Twojego domu 
Nic się nie dzieje... Wypłynęła wątpliwość i chyba zostało wyjaśnione. Ale jeśli inni by chcieli coś zmieniać niech się wypowiedzą.klew wrote: Sun Feb 18, 2024 11:24 am Przepraszam, ale nadal nie rozumiem co tu jest nieczytelne i mylące.
Czy możecie napisać co tam widzicie i w jaki sposób to odczytujecie, że wydaje się to nieintuicyjne?
Jak będę widział o co chodzi, to może znajdziemy jakieś lepsze nazwy czy parametry, aby to było czytelniejsze
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Nie bardzo zgodzę się, niech mnie ktoś poprawi z kolegą zzrr, w sprawie invertlogic.
Generalnie moje pytanie wzięło się stąd, że mam do pinu buttonConfig podpiętą krańcówkę z drugiej strony podpiętą do "-". W inicjalizacji miałem true, true. Bez przyłożenia magnesu moduł ciągle siedział w config, a po zwarciu krańcówki działało ok. Doszedłem do tego, że to któryś z argumentów trzeba zmienić na false. Zmieniłem trzeci argument na false i teraz działa dobrze.
Ja to rozumiem tak, że jeśli drugim argumentem ustawiamy true i robimy pullup, to trzeci invert musi być false, wtedy nie ma odwróconej logiki i stan zmieniamy "-" bo mamy pullupa. Jeśli pullup mamy true, a invert też true, to stan buttona zmieniamy "+".
TAK?
Generalnie moje pytanie wzięło się stąd, że mam do pinu buttonConfig podpiętą krańcówkę z drugiej strony podpiętą do "-". W inicjalizacji miałem true, true. Bez przyłożenia magnesu moduł ciągle siedział w config, a po zwarciu krańcówki działało ok. Doszedłem do tego, że to któryś z argumentów trzeba zmienić na false. Zmieniłem trzeci argument na false i teraz działa dobrze.
Ja to rozumiem tak, że jeśli drugim argumentem ustawiamy true i robimy pullup, to trzeci invert musi być false, wtedy nie ma odwróconej logiki i stan zmieniamy "-" bo mamy pullupa. Jeśli pullup mamy true, a invert też true, to stan buttona zmieniamy "+".
TAK?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
Nie... jak mamy true, true to stan zmieniamy minusem. Twój moduł ciągle siedział w configu bo już na starcie dawałeś mu wyzwalanie minusem z krańcówki. Jak drugi dasz true to trzeciego nie możesz dawać false. Bo to tak jak byś nakazał... zrób pullup czyli 3.3V i wyzwalaj też 3.3V. jak ustawiłeś true, false to minus z Twojej krańcówki zwierał cały czas podniesiony pullup do masy co jest nie właściwe a faktycznie ustawiony trzeci parametr na false powodował że zadziałało wyzwolenie jak się pokazał plus.SOYER wrote: Sun Feb 18, 2024 1:02 pm Nie bardzo zgodzę się, niech mnie ktoś poprawi z kolegą zzrr, w sprawie invertlogic.
Generalnie moje pytanie wzięło się stąd, że mam do pinu buttonConfig podpiętą krańcówkę z drugiej strony podpiętą do "-". W inicjalizacji miałem true, true. Bez przyłożenia magnesu moduł ciągle siedział w config, a po zwarciu krańcówki działało ok. Doszedłem do tego, że to któryś z argumentów trzeba zmienić na false. Zmieniłem trzeci argument na false i teraz działa dobrze.
Ja to rozumiem tak, że jeśli drugim argumentem ustawiamy true i robimy pullup, to trzeci invert musi być false, wtedy nie ma odwróconej logiki i stan zmieniamy "-" bo mamy pullupa. Jeśli pullup mamy true, a invert też true, to stan buttona zmieniamy "+".
TAK?
Jak masz minus na krańcówce a wyzwalasz plusem to powinieneś mieć ustawione false, false
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Tylko, że jak miałem true, true, to siedział w configu bez zwartej krańcówki, jak zwarłem to wychodził z configa, jak rozwarłem to znów wchodził. Dlatego było mi dziwne, to zachowanie i zadałem pytanie.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
No było przecież... InvertLogic true znaczy że odwrócona logika włączona czyli wyzwalanie minusem. W configu mógł siedzieć również z innych powodów ale to nie koniecznie musiało być związane z tymi ustawieniami
Last edited by zzrr on Sun Feb 18, 2024 1:46 pm, edited 1 time in total.
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Domyślną "logika" jest taka, że stan niski na GPIO to false, 0.
Stan wysoki to true, 1.
Jeśli mówimy o przycisku, to stan false, niski, 0 odpowiada zwolnionemu przyciskowi.
Stan wysoki, true, 1, to wciśnięcie przycisku.
Invert logic odwraca ta logikę.
Najlepsze suple dla Twojego domu 
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
OK,
czyli żeby zrobić wyzwalać niskim to musi być true, true.
Mój problem się chyba wział z tego, że użyłem pinu 35, a ten nie ma możliwości włączenia wew. pullupa. Ot i zonk
Ktoś wie czy pomoże na tym pinie zewnętrzy rezystor pullup?
czyli żeby zrobić wyzwalać niskim to musi być true, true.
Mój problem się chyba wział z tego, że użyłem pinu 35, a ten nie ma możliwości włączenia wew. pullupa. Ot i zonk
Ktoś wie czy pomoże na tym pinie zewnętrzy rezystor pullup?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
