main/task_apds9930.h

Sun, 16 Apr 2023 12:27:12 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 16 Apr 2023 12:27:12 +0200
changeset 30
7448b8dd4288
parent 12
bb72d448e282
child 37
50dbb626fbab
permissions
-rw-r--r--

Preparations for BLE GATT. Added extra time after INA219 is powered on before measurement. Reduced LEDC frequency to 60 Hz, that makes the LED lights less nervous. Hardware mod on output 4, now needs external pulldown resistor.

/**
 * @file task_apds9930.h
 * @brief The FreeRTOS task to query the APDS9930 sensor connected to
 *        the I2C bus.
 *        The task will update the sensor state structures.
 */

#ifndef	_TASK_APDS9930_H
#define	_TASK_APDS9930_H

/*
 * Error codes in this task
 */
#define	APDS9930_ERR_NONE			0	///< No errors
#define APDS9930_ERR_READ			1



/**
 * @brief Structure containing the variables for the APDS9930 task.
 */
typedef struct {
    bool		valid;			///< Valid measurement
    bool		fake;			///< Fake measurement
    uint8_t		address;		///< Device i2c address
    float		ambient_light;		///< Kind of Lux.
    uint8_t		gain;			///< APDS9930 last gain setting
    uint8_t		aglbit;			///< APDS9930 ALS Gain Level bit
    int			error;			///< Error result
} APDS9930_State;



/**
 * @brief Request a new measurement from the APDS9930.
 */
void request_apds9930(void);


/**
 * @brief Check if results are ready
 * @return true of results are ready, else false.
 */
bool ready_apds9930(void);


/**
 * @brief The FreeRTOS task to update the APDS9930 on request.
 * @param pvParameters Parameters for the task.
 */
void task_apds9930(void *pvParameters);


#endif

mercurial