Initial Commit
This commit is contained in:
66
include/bme280.h
Executable file
66
include/bme280.h
Executable file
@ -0,0 +1,66 @@
|
||||
#ifndef __BME280_H__
|
||||
#define __BME280_H__
|
||||
|
||||
// Einfach mal wieder was in C schreinben oder so
|
||||
|
||||
// Use extern C from C++
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "hardware/i2c.h"
|
||||
|
||||
#ifndef BME280_ADDR
|
||||
#define BME280_ADDR 0x76
|
||||
#endif
|
||||
|
||||
// Strcut zum speichern aller kallibrierungsdaten
|
||||
typedef struct __bme280_callib {
|
||||
// Temp
|
||||
uint16_t dig_T1;
|
||||
int16_t dig_T2;
|
||||
int16_t dig_T3;
|
||||
// Luftdruck ??
|
||||
uint16_t dig_P1;
|
||||
int16_t dig_P2;
|
||||
int16_t dig_P3;
|
||||
int16_t dig_P4;
|
||||
int16_t dig_P5;
|
||||
int16_t dig_P6;
|
||||
int16_t dig_P7;
|
||||
int16_t dig_P8;
|
||||
int16_t dig_P9;
|
||||
// Luftfeuchtigkeit
|
||||
uint8_t dig_H1;
|
||||
int16_t dig_H2;
|
||||
uint8_t dig_H3;
|
||||
int16_t dig_H4;
|
||||
int16_t dig_H5;
|
||||
int8_t dig_H6;
|
||||
} bme280_callib;
|
||||
|
||||
// Usally the way how devkitpro members declare
|
||||
// structs in C
|
||||
typedef struct bme280_ctx_s {
|
||||
// Functions
|
||||
void (*update)(struct bme280_ctx_s* self);
|
||||
float (*read_temp)(struct bme280_ctx_s* self);
|
||||
float (*read_humidity)(struct bme280_ctx_s* self);
|
||||
float (*read_pressure)(struct bme280_ctx_s* self);
|
||||
/// Nur für bme280.c lesbar
|
||||
bme280_callib callib;
|
||||
int32_t raw_temperature;
|
||||
int32_t raw_humidity;
|
||||
int32_t raw_pressure;
|
||||
int32_t t_fine;
|
||||
i2c_inst_t* i2c;
|
||||
} bme280_ctx;
|
||||
|
||||
// Base functions
|
||||
bme280_ctx* bme280_init(i2c_inst_t* i2c, uint sda, uint scl);
|
||||
void bme280_deinit(bme280_ctx* ctx);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
Reference in New Issue
Block a user