interface
This commit is contained in:
parent
a31f67d4a9
commit
e1f2040e6c
21
README.md
21
README.md
@ -12,9 +12,23 @@ A C89 driver for the 3-axis accelerometer LIS3DH. Supports both i2c and SPI.
|
|||||||
> - Single and double click detection (soon)
|
> - Single and double click detection (soon)
|
||||||
> - 4D/6D orientation detection (soon)
|
> - 4D/6D orientation detection (soon)
|
||||||
|
|
||||||
> ### Notes
|
## Implementation
|
||||||
> FIFO is always and only 10-bit
|
This driver requires the user to provide pointers to the following abstractely named functions:
|
||||||
|
|
||||||
|
This project has example interface code for I2C used on Raspberry Pi.
|
||||||
|
```c
|
||||||
|
/* initialise the "interface" */
|
||||||
|
int init(void);
|
||||||
|
/* read from device register `reg`, `size` amount of bytes and write them to `dst` */
|
||||||
|
int read(uint8_t reg, uint8_t *dst, uint32_t size);
|
||||||
|
/* write `value` to device register `reg` */
|
||||||
|
int write(uint8_t reg, uint8_t value);
|
||||||
|
/* sleep for `dur_us` microseconds */
|
||||||
|
int sleep(uint32_t dur_us);
|
||||||
|
/* deinitalise the "interface" */
|
||||||
|
int deinit(void);
|
||||||
|
```
|
||||||
|
All above functions return `0` on success.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
Simple example:
|
Simple example:
|
||||||
@ -137,7 +151,8 @@ x: 0.516000, y: -0.852000, z: -0.112000
|
|||||||
## Using FIFO
|
## Using FIFO
|
||||||
Instead of polling for every single [x y z] set, a FIFO with programmable capacity ("watermark") can be used like such:
|
Instead of polling for every single [x y z] set, a FIFO with programmable capacity ("watermark") can be used like such:
|
||||||
|
|
||||||
It should be noted that all FIFO readings use 10-bit resolution regardless of the mode. The watermark level can also be adjusted to a value [0-32] inclusive by modifying the `lis.cfg.fifo.fth` property before calling configure().
|
All FIFO readings use 10-bit resolution regardless of the mode set in `lis.cfg.mode`.
|
||||||
|
The watermark level can also be adjusted to a value [0-32] inclusive by modifying the `lis.cfg.fifo.fth` property before calling configure().
|
||||||
```c
|
```c
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user