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



Teraz jest 3 sty 2025, o 12:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 8 paź 2017, o 08:07 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Witam ponownie.
W ostatnich dniach dzięki pomocy kolegów z naszego forum udało mi się rozpocząć przygodę z ekspanderem :D .Teraz kiedy już zacząłem coś kombinować z tymi kostkami pojawił się problem tego typu:
Jak zmienić tylko jeden bit w całym bajcie. Nie mogę wpaść na sposób jak to zrobić. Proszę o wskazówkę jedynie jak takie rzeczy się robi.
Ja robię to w ten sposób:

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

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


Jednak takim sposobem chcąc następnym wywołaniem tej funkcji zmienić inną LED to muszę znów wpisać że ta ma być też włączona, problem w tym że chciał bym zmieniać drugą LED ale nie biorąc już tej pod uwagę :( . Jak do tego podejść jak to ugryźć :?: .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2017, o 08:43 
Offline
Użytkownik

Dołączył(a): 22 mar 2017
Posty: 80
Pomógł: 5

1. Odczytać do zmiennej stan portu PCF'a
2. Zmienić odpowiedni bit w zmiennej (or, and, xor z maską na ten bit - w zależności czy chcesz włączyć, wyłączyć czy zmienić stan na przeciwny)
3. Wysłać zmienną do PCF'a

Ewentualnie w programie pamiętać co wysyłasz na port, najpierw zrobić sobie zmienną, w niej ustawiać co się chce i ją wysyłać na port PCF'a.

Wtedy chcąc zmienić stan jednej diody najpierw zmieniasz stan konkretnego bitu w swojej zmiennej i wysyłasz ją na port.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2017, o 08:52 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Niestety nadal nie za bardzo wiem jak to zrobić. Zbyt małe doświadczenie jeszcze posiadam a żeby zrobić takie operacje :oops: .Chyba nic z tego nie będzie ugrzęzłem :cry:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2017, o 09:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

masz bluebooka, więc przeczytaj rozdział 3.4.2 na str 95. potem obejrzyj to:
http://mirekk36.blogspot.com/2014/03/ma ... m-oka.html

wszystko się wyjaśni

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2017, o 09:17 
Offline
Użytkownik

Dołączył(a): 22 mar 2017
Posty: 80
Pomógł: 5

Dla dwóch diod:

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


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

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


Zmieniasz stan zmiennej i wysyłasz ją na port expandera. Działasz na zmiennej PORT_LED tak jakbyś działał na porcie ;)


Autor postu otrzymał pochwałę


Ostatnio edytowano 8 paź 2017, o 09:23 przez arturssp, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2017, o 09:20 
Offline
Nowy

Dołączył(a): 08 kwi 2017
Posty: 18
Pomógł: 2

operator "|" - bitowa alternatywa (OR)

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



operator "&" - bitowa koniunkcja (AND)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



operator "^" - bitowa alternatywa wykluczająca (XOR)

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



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

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

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


Proszę, taka mała rozpiska ;)

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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2017, o 12:02 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Ale szkoła :shock: .Już biorę się do analizowania tego wykładu do bb też zajrzę. Gdy by nie te forum to już dawno bym się poddał :oops: , a w ten sposób że ktoś poświęci mojej skromnej osoby parę minutek jakoś to pomału ogarniam :) .
Jak nabiorę większego doświadczenia nie przejdę obojętnie kiedy ktoś będzie potrzebował fachowej pomocy 8-) .
Jak coś jeszcze nie pójdzie to się odezwę na razie wielkie dzięki i pozdrawiam.



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: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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