ATNEL tech-forum https://forum.atnel.pl/ |
|
Prośba o wytłumaczenie - język C https://forum.atnel.pl/topic21965.html |
Strona 1 z 1 |
Autor: | BartoszM91 [ 13 lut 2019, o 08:42 ] |
Tytuł: | Prośba o wytłumaczenie - język C |
Witam Wszystkich. Po dość długiej przerwie (sprawy osobiste) staram się wrócić do programowania. Sporo zapomniałem i zacząłem od ponownego czytania bluebook'a. Obecnie jestem na rozdziale związanym z obsługą LCD i zatrzymałem się na etapie tworzenia funkcji przesyłającej pół bajtu - kod poniżej. język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Moje pytania co do tego kawałka kodu są następujące: 1) Czym jest "data" w warunku if? Czy to są dane, które zamierzam przesłać do wyświetlenia? 2) Jak rozumieć warunek pętli if? Czy dobrze rozumuję, że jeśli na pozycji bitu "data" nr 0 spotka się 1 z przesuniętą jedynką (1<<0) to wykona się pierwsza instrukcja, bo warunek będzie prawdą, a gdy spotka 0 z 1 to otrzymam fałsz i wykona się intrukcja nr 2? Z góry dziękuję za odpowiedzi. Pozdrawiam. |
Autor: | mirekk36 [ 13 lut 2019, o 08:50 ] |
Tytuł: | Re: Prośba o wytłumaczenie - język C |
Dlaczego nie wkleiłeś nagłówka funkcji, przecież w nagłówku funkcji widzisz że data to argument przekazywany do funkcji czyli dane przesyłane do LCD. Chodzi oczywiście o 4 najmłodsze bity z tego bajtu i ten warunek if panie kochany po kolei sprawdza każdy bit w tym bajcie ... W zależności od tego czy bit na pozycji zerowej jest =1 to ustawiany jest na stan wysoki odpowiadający mu fizyczny pin mikrokontrolera. Jeśli jest =0 to wystawiany jest stan niski na ten pin więc masz rację w pkt.2 - to właśnie wyżej opisałem bardziej precyzyjnie |
Autor: | xentis [ 13 lut 2019, o 09:18 ] |
Tytuł: | Re: Prośba o wytłumaczenie - język C |
Dodać by tu można informację, iż ta cała wariacja z if-ami jest przez to (albo po to ) by można było w bibliotece skonfigurować dowolny pin procesora jako poszczególne sygnały. Jeśli by podłączyć line D4 ... D7 do jednego portu procesora we właściwej kolejności wystarczyło by zawartość "data" wpisać do tego portu z maskowaniem czterech nieznaczących bitów. Tak więc jak zawsze coś kosztem czegoś - wygoda korzystania z biblioteki i dowolność w doborze pinów, kosztem nieco dłuższego kodu - taki kompromis. Jeśli jednak zdarzy się niedobór pamięci flash można zawsze to nieco odchudzić |
Autor: | BartoszM91 [ 13 lut 2019, o 09:21 ] |
Tytuł: | Re: Prośba o wytłumaczenie - język C |
Dziękuję za rozwianie wątpliwości dalszą część instrukcji z ustawianiem stanów na wysoki i niski rozumiem, nie potrafiłem tylko do końca rozszyfrować warunku. Coś gdzieś mi podpowiadało w głowie, że albo zawsze będzie prawda albo zawsze będzie fałsz i nie wiem dlaczego. Chyba jakieś zaćmienie Teraz już jest wszystko jasne i mogę wracać do dalszej lektury. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |