wtorek, 28 czerwca 2016

[11] STM32F4 - sprzętowy kooprocesor arytmetyczny FPU

Ten post chciałbym poświęcić kooprocesorowi arytmetycznemu FPU.

FPU - Opis


FPU czyli arytmetic logic unit jest to wyspecjalizowany blok sprzętowy, którego zadaniem jest przyśpieszenie obliczeń zmiennoprzecinkowych. 

Operacje na liczbach zmiennoprzecinkowych w przypadku nie wykorzystywania FPU są bardzo czasochłonne, powodem tego jest dekodowanie operandów oraz modyfikowanie wartości w celu uzyskania takich samych wykładników. Po jednokrotnej operacji są one ponownie kodowane, po czym proces zaczyna się od początku.

sobota, 25 czerwca 2016

[25] Arduino - Moduł Neopixel WS2812B 8xLED RGB

Ten post chciałbym poświęcić obsłudze modułu Neopixel WS2812B zawierającego 8 diod świecących.

Opis


WS2812B jest to sterownik LED-ów zintegrowany z diodą RGB w obudowie 5050

Parametry modułu są następujące:

Temperatura pracy od 0 do 60 st. C
Zasilanie 5V
Sterowanie odbywa się za pomocą jednego przewodu
Każda dioda posiada 3X PWM 8bit.

Rys. 1. Neopixel 8x LED RGB WS2812 [1]

czwartek, 16 czerwca 2016

C - Preprocesor

W tym poście omówię zagadnieniu preprocesora w języku C.

Teoria


Proprocesor jest to oddzielny krok wykonywany podczas kompilacji. Składa się na niego zestaw instrukcji jakie są wykonywane za nim proces kompilacji się rozpocznie. 

Komendy jakie się wykorzystuje są poprzedzone symbolem "#". Poniżej przedstawiam listę często spotykanych kodów wraz z przykładami.

poniedziałek, 13 czerwca 2016

[8] PCB - Zasilacz impulsowy - układ L4960

W tym poście chciałbym przedstawić sposób budowy zasilacza impulsowego w oparciu o układ firmy ST Microelectronics L4960. 

Układ L4960


L4960 jest impulsowym stabilizatorem napięcia z funkcją regulacji wartości napięcia wyjściowego.

Rys. 1. L4960 - wygląd zewnętrzny

Poniżej przedstawiam opis tego układu w punktach, został on pobrany z dokumentacji udostępnionej przez producenta:

niedziela, 12 czerwca 2016

C - Przydzielanie pamięci

Ten post chciałbym poświęcić opisowi takich funkcji jak calloc, malloc, free oraz realloc, które są zdefiniowane w stdlib.h.

calloc - pozwala na przydzielenie tablicy elementów o podanym rozmiarze. Zwracany jest wskaźnik do przydzielonej pamięci lub wartość NULL jeśli operacja się nie powiedzie. Dodatkowo przydzielona pamięć jest ustawiana na wartość 0.  Funkcja wygląda następująco:

void *calloc(size_t nitems, size_t size)