Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 sty 2025, o 02:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 22 sty 2016, o 01:53 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Cześć, próbowałem uzyskać efekt aby w 8 bitowej zmiennej można byłoby przechowywać jednocześnie do ośmiu flag i odnosić się do nich poprzez dyrektywy. Program poniżej po na podstawie literki wysłanej po UART w zamyśle ma zapalić odpowiednio przypisaną diodę gdy odpowiednia flaga zostanie ustawiona. Problem jest taki, ze ustawienie jakiegokolwiek bitu w zmiennej flag, powoduje spełnienie warunków świecenia dla obu diod a nie tylko dla jednej. Wydaje mi się że dyrektywy FLAG3 i FLAG4 są źle napisane, ale nie wiem dlaczego. Ktoś mi wyjaśni czego nie rozumiem?


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 22 sty 2016, o 11:09 przez Bumcfksz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 06:40 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Tak napisałeś program i tak działa.
Np. (1<<3) zawsze się spełni, a wyrażenie "flag" spełni się jak jest różne od zera.
Musiałbyś raczej zrobić coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ale wydaje mi się, że lepiej zrobić to na polach bitowych:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I odwoływać się Flag.f1, lub Flag.f7.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 11:32 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Jeden znak a jaka kolosalna różnica :D. Ale i tak będę używał tych pół bo mniej pisaniny. Dzięki za pomoc ;)

------------------------ [ Dodano po: 51 minutach ]

Ok, dzięki, ale zrozumiałem to po korekcie wcześniejszej, po prostu pomyliłem "&&" z "&" . Wydawało mi się że && zadziała jak mnożenie na bitach :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Majestic-12 [Bot] i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO