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



Teraz jest 18 kwi 2024, o 23:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 23 lut 2020, o 14:10 
Offline
Użytkownik

Dołączył(a): 06 sie 2019
Posty: 47
Pomógł: 0

Witam potrafiłby mi ktoś wytłumaczyć dlaczego podkreślone polecenie, które ma wartość 0x00000010 w pliku "stm32f4xx.h" nie odpowiada wartości bitu w reference manualu uC (wg dokumentu jest to 4 bit rejestru także myśle że wart powinna wynosić 0x00000004). Jaka jest zależność między tymi dwiema wartościami?
ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2020, o 14:39 
Offline
Użytkownik

Dołączył(a): 01 lis 2013
Posty: 302
Pomógł: 32

Jak nie odpowiada, skoro odpowiada ?
4 bit zapalony to: 0x00000010, tak jak jest w opisie.

Bity numeruje się od 0, Dla uproszczenia liczba 8 bit:

7 6 5 4 3 2 1 0 <- nr. bitu
0 0 0 1 0 0 0 0 = 0x10

_________________
Pozdrawiam,
sq8mvy, Paweł



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2020, o 15:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 705
Lokalizacja: Zielona Góra
Pomógł: 75

Ja tylko dodam że przedrostek 0x to zapis liczby szesnastkowej (hex) nie binarnej i nie dziesiętnej, binarna była by poprzedzona przedrostkiem 0b, dziesiętna nie ma żadnego przedrostka - stąd może ta niejasność.

_________________
pozdrawiam
phill2k



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2020, o 16:34 
Offline
Użytkownik

Dołączył(a): 01 lis 2013
Posty: 302
Pomógł: 32

Tyle, że liczby od 0 do 9 zapisane szesnastkowo wyglądają tak jak liczby zapisane w postci dziesiętnej. Tu ciężko jest nie zrozumieć.

Problem zapewne pojawił się w tym, że przedstawiane makra zostały źle zinterpretowane.
Podpierając się powyższym przykładem z pierwszego postu jest tak:

RCC_AHB1ENR_GPIOEEN_Pos ma wartość 0x00000004
więc zapis
0x1U << RCC_AHB1ENR_GPIOEEN_Pos
da w wyniku liczbę, którą widać w komentarzu, czyli:
0x00000010
i to ta liczba jest maską dla operacji bitowych na 4 bicie wspomnianego rejestru i reprezentowana jest przez:
RCC_AHB1ENR_GPIOEEN

_________________
Pozdrawiam,
sq8mvy, Paweł



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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