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



Teraz jest 28 wrz 2025, o 12:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 27 lip 2014, o 22:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Witam, jako iż we wcześniejszym temacie pan Mirek podrzucił mi pomysł aby do zsumowania liczb użyć przesunięć, tak też zrobiłem. Jednak mam 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.


Po wysłaniu zmiennej color do diody RGB otrzymuje kolor pomarańczowy. A teoretycznie powinien być zielony.

To działa więc wina podłączenie nie jest:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


@color jest typu uint32_t

@zmniejszenie pwm do 160 powoduje że otrzymuje kolor zielony

_________________
sig off ;(



Ostatnio edytowano 27 lip 2014, o 22:27 przez Mateo193, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2014, o 22:16 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27436
Lokalizacja: Szczecin
Pomógł: 1044

a po co robisz rzutowanie uint32_t jak przesuwasz tylko o 8 bitów czyli w ramach zmiennej 16-bitowej ?


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2014, o 22:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

No dobrze w tamtym przykładzie się machłem ale straciłem pomysłu i zacząłem usuwać zbędne rzeczy a nie zmieniłem rzutowania.
Już usunąłem część tematu która była taką dygresją i moim "próbowanie"

Natomiast jeżeli chodzi o ten fragment to tutaj mam przesunięcie o 16bitów więc muszę dać 32.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2014, o 22:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Zgodnie z zapisem:

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

Rzutowanie dotyczy samej zmiennej (faktycznie nie potrzebna aż 4-bajtowa reprezentacja, wystarczy uint16_t w tym przypadku). Zgodnie z priorytetami operatorów przesunięcie bitowe będzie wykonywane już w ramach zmiennej traktowanej jako 32b.

W przypadku nawiasów obejmujących zapis przesunięcia, to ono zostanie wykonane najpierw operując na źródłowym typie zmiennej 8-mio bitowej, który nie jest w stanie przechować większej wartości powstałej po tym przesunięciu. Później taka zerowa wartość jest rzutowana na większy typ, co oczywiście pozbawiane jest już sensu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2014, o 10:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2013
Posty: 191
Pomógł: 2

Aaa już rozumiem o co panom chodziło :D Dziękuje za pomoc :) Jednak wystarczyło się z problemem przespać.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2016, o 18:26 
Offline
Nowy

Dołączył(a): 14 cze 2015
Posty: 24
Lokalizacja: Olesno
Pomógł: 5

Witam, mam podobny problem co kolega w pierwszym poście czyli zamiast zielonego po przekroczeniu g=150 świeci na pomarańczowo

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


Gdy np r=1 to zielony rozjaśnia się prawidłowo. Dodam jeszcze ze gdy zapisze color = 0x00ff00 to jest ok.
Może ktoś wytłumaczyć.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO