Wpis z mikrobloga

Uczę się z kursu Arduino od @Forbot (dzięki! Super kurs!) i aktualnie poznaję zmienne. Próbuję rozwiązać zadanie 2.5, którego treść brzmi

Zadanie trudniejsze, z gwiazdką . Napisz program, który po wysłaniu koloru diody zmieni jej stan na przeciwny. Jeśli dioda jest włączona, to zostanie wyłączona i na odwrót. Podpowiedź: koniecznie użyj dodatkowych zmiennych typu bool, które będą pamiętały aktualny stan diod.


Udało mi się zrobić to zadanie, tylko nie wiem pewnej rzeczy. Wykorzystałem zmienną bool (nazwałem ją zielonaStan) i kiedy wpiszę kolor diody to ma być wykonana operacja zielonaStan = zielonaStan - 1 Wszystko działa tak, jak powinno

Zastanawia mnie jednak, dlaczego nie działało zielonaStan = zielonaStan + 1 Zmienna bool ma chyba tylko dwa stany?
Dioda się zaświeciła i nie mogłem jej zgasić

#kiciochpyta #arduino #programowanie #elektronika
A.....o - Uczę się z kursu Arduino od @Forbot (dzięki! Super kurs!) i aktualnie pozna...

źródło: comment_cQdCzQLoqRNfKG8KRmlD99S9E81gNDAx.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Antwito: zmienna boolean/bool ma 256 stanów :) To jest zmienna, która tak naprawdę jest typu uint8_t - czyli 8 bitów bez znaku. Może przechowywać wartości od 0 do 255, przy czym 0 odpowiada fałszowi, a każda inna wartość to prawda.
  • Odpowiedz
@wonsz_smieszek: zrobiłem teraz program wyświetlający wartość zmiennej bool i przetestowałem dodawanie i odejmowanie. Przy odejmowaniu wyświetla na zmianę 0 i 1, a przy dodawaniu same 1, nigdy nie wyskoczyło 0 Nie za bardzo rozumiem, dlaczego tak się dzieje
  • Odpowiedz
@Antwito: ok, to w takim razie to co innego.

Podejrzewam, że Twój przypadek jest analogiczny do działania operatorów ++ i --. Jeżeli możesz - sprawdź (czyli zamiast zielonaStan = zielonaStan - 1, napisz zielonaStan--). Wydaje mi się, że rezultat będzie ten sam.

Standard cpp mówi, że:
- operator ++ w działaniu na bool powinien dawać zawsze 1
  • Odpowiedz
@Antwito: cieszę się, że kursy są pomocne ( ͡° ͜ʖ ͡°)
Ogólnie to chciałem zapytać skąd te dodawanie/odejmowanie? Nie lepiej negować wartość zmiennej? To chyba najpewniejsze rozwiązanie w przypadku boola ( ͡ ͜ʖ ͡)
  • Odpowiedz