KwikStik z Kinetis K40 oraz akcelerometr 3D LIS35DE – przykład aplikacji
Obsługa akcelerometru LIS35DE
Komunikacja z układem LIS35DE polega na odczycie i zapisie jego rejestrów przez interfejs SPI. Zapis polega na wysłaniu bajtu zawierającego adres rejestru w sześciu młodszych bitach, opcjonalnie można ustawić szósty (licząc od zera) bit, co włącza autoinkrementację adresu. Po tym bajcie zapisujemy bajt lub bajty z danymi. Zapis przebiega analogicznie, tylko w pierwszym bajcie ustawiamy najstarszy bit, w kolejnym lub kolejnych bajtach odczytujemy dane z rejestrów. Operacje te są wykonywane przez funkcje LIS35_ReadRegister i LIS35_WriteRegister.
Przed odczytem danych z akcelerometru należy go zainicjalizować, do tego służy funkcja InitializeLIS35.
InitializeLIS35.
char InitializeLIS35(void)
{
char RegVal, LIS35Settings;
//Reset LIS35 configuration
LIS35_RebootMemory();
//Power up
LIS35Settings = LIS35_REG_CR1_XEN | LIS35_REG_CR1_YEN | LIS35_REG_CR1_ZEN | LIS35_REG_CR1_ACTIVE;
LIS35_WriteRegister(LIS35_REG_CR1, LIS35Settings);
LIS35_ReadRegister(LIS35_REG_CR1, &RegVal);
//Check whether power up is set
if (RegVal == LIS35Settings) return LIS35_OK;
return LIS35_ERROR;
}
Funkcja najpierw zeruje układ (LIS35_RebootMemory ustawia bit BOOT w rejestrze CR2), następnie w rejestrze CR1 ustawia bity XEN, YEN, ZEN (odblokowanie wszystkich trzech akcelerometrów) i ACTIVE (przełączenie układu w tryb active). Na koniec sprawdzane jest, czy rejestr CR1 zawiera zamierzone wartości.
Do odczytania pomiarów służy funkcja LIS35_GetPosition, która zapisuje pod adresami przekazanymi jako parametry wartości rejestrów XOUT, YOUT i ZOUT.
void LIS35_GetPosition(signed char * x, signed char * y, signed char * z)
{
char buf[6];
buf[0] = LIS35_READ|LIS35_ADDR_INC|LIS35_REG_OUTX;
buf[1] = 0; buf[2] = 0; buf[3] = 0; buf[4] = 0; buf[5] = 0;
SPI_Transmit(buf, 6);
*x = buf[1];
*y = buf[3];
*z = buf[5];
}
Funkcja main w pętli odczytuje te pomiary i przy pomocy prostej funkcji DrawBar rysuje trzy paski obrazujące odczytane wartości.

Grzegorz Kamiński: Dlaczego powstały tranzystory FinFET i GAAFET?
Google stawia na fuzję jądrową. AI potrzebuje coraz więcej energii
Fotowoltaika perowskitowa: od wydajności laboratoryjnej do masowej komercjalizacji 

![https://www.youtube.com/watch?v=XkeyLmtLfxo O konkursie organizowanym przez firmę TRUMPF Huettinger i polskie uczelnie techniczne opowiada Alicja Peresada i prof. Jacek Rąbkowski oraz kilkoro nagrodzonych dyplomantów: mgr inż. Jakub Dobosz, inż. Maja Zielińska, dr inż. Jakub Kołodziej, dr inż Weronika Hryniewska-Guzik i dr inż. Grzegorz Bartyzel. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/07/TRUMPF-czolowka.png)



