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.

Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



