/* * bmp180.h * * Created on: 23.08.2015 * Author: fbargste */ #ifndef DRIVER_BMP180_H_ #define DRIVER_BMP180_H_ #include "stdint.h" #include "stdbool.h" #include "FreeRTOS.h" #include "queue.h" // Uncomment to enable debug output //#define BMP180_DEBUG #define BMP180_TEMPERATURE (1<<0) #define BMP180_PRESSURE (1<<1) // // Create bmp180_types // // temperature in °C typedef float bmp180_temp_t; // pressure in mPa (To get hPa divide by 100) typedef uint32_t bmp180_press_t; // BMP180_Event_Result typedef struct { uint8_t cmd; bmp180_temp_t temperatue; bmp180_press_t pressure; } bmp180_result_t; // Init bmp180 driver ... bool bmp180_init(uint8_t scl, uint8_t sda); // Trigger a "complete" measurement (temperature and pressure will be valid when given to "bmp180_informUser) void bmp180_trigger_measurement(const xQueueHandle* resultQueue); // Trigger a "temperature only" measurement (only temperature will be valid when given to "bmp180_informUser) void bmp180_trigger_temperature_measurement(const xQueueHandle* resultQueue); // Trigger a "pressure only" measurement (only pressure will be valid when given to "bmp180_informUser) void bmp180_trigger_pressure_measurement(const xQueueHandle* resultQueue); // Give the user the chance to create it's own handler extern bool (*bmp180_informUser)(const xQueueHandle* resultQueue, uint8_t cmd, bmp180_temp_t temperatue, bmp180_press_t pressure); #endif /* DRIVER_BMP180_H_ */