• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

typedef enum c

Object Storage Arubacloud
0 głosów
202 wizyt
pytanie zadane 18 marca 2020 w C i C++ przez dal'sharum Nowicjusz (200 p.)

Cześć,
Próbuje przeanalizować kod linia po linii i się czegoś nauczyć. Do pełni szczęścia potrzebuje pomocy.
W funkcji pojawia się dla mnie magiczne (GPIO_PinState).  I tu nie rozumiem co się dzieje od strony języka c.
Prawy nawias jest dla mnie zrozumiały, ale (GPIO_PinState)(nibbleToWrite & 0x01)  w całości już nie.
Nie daje mi to spokoju.

typedef enum
{
  GPIO_PIN_RESET = 0U,
  GPIO_PIN_SET
} GPIO_PinState;

void LCD_WriteNibble(char nibbleToWrite)
{
  HAL_GPIO_WritePin(LCD_GPIO, LCD_EN, GPIO_PIN_SET);
  HAL_GPIO_WritePin(LCD_GPIO, LCD_D4, (GPIO_PinState)(nibbleToWrite & 0x01));
  HAL_GPIO_WritePin(LCD_GPIO, LCD_D5, (GPIO_PinState)(nibbleToWrite & 0x02));
  HAL_GPIO_WritePin(LCD_GPIO, LCD_D6, (GPIO_PinState)(nibbleToWrite & 0x04));
  HAL_GPIO_WritePin(LCD_GPIO, LCD_D7, (GPIO_PinState)(nibbleToWrite & 0x08));
  HAL_GPIO_WritePin(LCD_GPIO, LCD_EN, GPIO_PIN_RESET);
}

 

1 odpowiedź

0 głosów
odpowiedź 18 marca 2020 przez tkz Nałogowiec (42,000 p.)
HAL_GPIO_WritePin(arg1, arg2, arg3);

arg1, to port, arg2, to numer pinu, arg3, to stan pinu. 

(GPIO_PinState)(nibbleToWrite & 0x08)

(GPIO_PinState) jest Twoim enum, za pomocą którego castujesz wartość przekazaną w funkcji.

komentarz 20 marca 2020 przez dal'sharum Nowicjusz (200 p.)

Cześć,
Poczytałem i dalej nie rozumiem. angry
Jak usunę (GPIO_PinState)(nibbleToWrite & 0x08) z funkcji to dalej działa! Hmm?
Jak z koniunkcji wyjdzie gdzieś 1 to odpowiednio na każdej linii portu funkcja wystawi stan wysoki.
Szczerze myślałem, że to zabieg kosmetyczny,
Jest kolega może wstanie krok po kroku łopatologicznie wyjaśnić mi co się dzieje w:
(GPIO_PinState)(nibbleToWrite & 0x08)

Podobne pytania

0 głosów
1 odpowiedź 2,404 wizyt
pytanie zadane 2 lutego 2016 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
0 głosów
5 odpowiedzi 3,268 wizyt
pytanie zadane 29 stycznia 2016 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
+1 głos
1 odpowiedź 235 wizyt
pytanie zadane 17 czerwca 2021 w C i C++ przez Eriss69 Gaduła (4,470 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...