74#define AMG88XX_PIXELS_HORIZONTAL (8)
75#define AMG88XX_PIXELS_VERTICAL (8)
76#define AMG88XX_PIXELS_COUNT (64)
81#define AMG88XX_BYTES_PER_PIXEL (2)
82#define AMG88XX_BYTES_PER_FRAME (128)
110#if IS_USED(MODULE_PERIPH_GPIO_IRQ) || defined(DOXYGEN)
123#if IS_USED(MODULE_PERIPH_GPIO_IRQ) || defined(DOXYGEN)
248#if IS_USED(MODULE_PERIPH_GPIO_IRQ) || defined(DOXYGEN)
324 int16_t lower, int16_t hysteresis);
345 int16_t *lower, int16_t *hysteresis);
418 return (int16_t)raw * 25;
433 return (int16_t)(temperature / 25);
Internal addresses, registers and constants.
Definition of the generic [S]ensor [A]ctuator [U]ber [L]ayer.
Low-level GPIO peripheral driver interface definitions.
int amg88xx_get_mode(const amg88xx_t *dev, amg88xx_mode_t *mode)
Get the current operating mode.
#define AMG88XX_PIXELS_COUNT
Number of pixels per frame.
amg88xx_fps_t
Frame rate options.
int amg88xx_set_averaging(const amg88xx_t *dev, bool enabled)
Enable or disable twice moving average mode.
int amg88xx_init(amg88xx_t *dev, const amg88xx_params_t *params)
Initialize the given sensor.
static int16_t amg88xx_raw_to_temperature(int16_t raw)
Convert a raw pixel value to temperature in centi-degrees Celsius.
int amg88xx_init_int(amg88xx_t *dev, amg88xx_int_cb_t cb, void *arg)
Initialize the interrupt pin.
amg88xx_mode_t
Operating mode options.
int amg88xx_set_fps(const amg88xx_t *dev, amg88xx_fps_t fps)
Set the frame rate.
int amg88xx_set_interrupt_levels(const amg88xx_t *dev, int16_t upper, int16_t lower, int16_t hysteresis)
Set the interrupt threshold levels.
const saul_driver_t amg88xx_temperature_saul_driver
Export of SAUL interface for temperature sensor.
amg88xx_interrupt_mode_t
Interrupt mode options.
int amg88xx_get_temperature(const amg88xx_t *dev, int16_t *temperature)
Read the thermistor (chip) temperature.
int amg88xx_clear_status(const amg88xx_t *dev)
Clear all status and interrupt flags.
int amg88xx_set_mode(amg88xx_t *dev, amg88xx_mode_t mode)
Set the operating mode.
int amg88xx_get_frame(const amg88xx_t *dev, int16_t pixels[AMG88XX_PIXELS_COUNT])
Read a 8x8 frame of thermal pixel data.
void(* amg88xx_int_cb_t)(void *)
Interrupt callback type.
int amg88xx_get_interrupt_table(const amg88xx_t *dev, uint8_t table[8])
Read the interrupt table.
int amg88xx_get_fps(const amg88xx_t *dev, amg88xx_fps_t *fps)
Get the current frame rate.
int amg88xx_set_interrupt(const amg88xx_t *dev, amg88xx_interrupt_mode_t mode, bool enabled)
Enable or disable the interrupt with the given mode.
int amg88xx_get_interrupt(const amg88xx_t *dev, amg88xx_interrupt_mode_t *mode, bool *enabled)
Get the current interrupt configuration.
int amg88xx_get_interrupt_levels(const amg88xx_t *dev, int16_t *upper, int16_t *lower, int16_t *hysteresis)
Get the current interrupt threshold levels.
int amg88xx_get_status(const amg88xx_t *dev, uint8_t *status)
Read the status register.
static int16_t amg88xx_temperature_to_raw(int16_t temperature)
Convert a temperature in centi-degrees Celsius to a raw pixel value.
int amg88xx_get_averaging(const amg88xx_t *dev, bool *enabled)
Get the current averaging mode.
@ AMG88XX_FPS_1
1 frame per second
@ AMG88XX_FPS_10
10 frames per second
@ AMG88XX_MODE_STANDBY_60S
Standby with 60s intermittence.
@ AMG88XX_MODE_NORMAL
Normal mode.
@ AMG88XX_MODE_SLEEP
Sleep mode.
@ AMG88XX_MODE_STANDBY_10S
Standby with 10s intermittence.
@ AMG88XX_INT_ABSOLUTE
Absolute value interrupt mode.
@ AMG88XX_INT_DIFFERENCE
Difference interrupt mode.
uint_fast8_t i2c_t
Default i2c_t type definition.
Low-level I2C peripheral driver interface definition.
Device initialization parameters.
gpio_t int_pin
interrupt pin (GPIO_UNDEF if not used)
uint8_t address
sensor address
i2c_t i2c_dev
I2C bus the sensor is connected to.
Device descriptor for the driver.
amg88xx_params_t params
device initialization parameters
amg88xx_mode_t mode
last set operating mode
Definition of the RIOT actuator/sensor interface.