Filter BMA456 logs by configurable LSB threshold; master can set deadzone for local sensor or slaves using ACCEL_DEADZONE (UART) and ESP-NOW broadcast until unicast delivery is restored. Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
648 B
C
26 lines
648 B
C
#ifndef BOSCH456_H
|
|
#define BOSCH456_H
|
|
|
|
#include "driver/i2c_types.h"
|
|
#include "esp_err.h"
|
|
|
|
#define TOUCH_1 9
|
|
#define TOUCH_2 8
|
|
|
|
#define BMA456_ADDRESS 0x18
|
|
|
|
#define BMA456_DEFAULT_ACCEL_DEADZONE 100u
|
|
|
|
/** Initialize BMA456 on the shared I2C bus. Returns ESP_OK or logs and skips sensor use. */
|
|
esp_err_t init_bma456(i2c_master_bus_handle_t bus_handle);
|
|
|
|
bool bma456_is_ready(void);
|
|
|
|
void bma456_set_accel_deadzone(uint32_t deadzone_lsb);
|
|
uint32_t bma456_get_accel_deadzone(void);
|
|
|
|
/** Log accel sample only when any axis changed more than deadzone since last report. */
|
|
void bma456_report_accel_if_changed(int16_t x, int16_t y, int16_t z);
|
|
|
|
#endif
|