88 lines
2.2 KiB
C
88 lines
2.2 KiB
C
#include "board.h"
|
|
#include "clock_config.h"
|
|
#include "peripherals.h"
|
|
#include "pin_mux.h"
|
|
|
|
/* Debug console */
|
|
#include "fsl_debug_console.h"
|
|
|
|
/* PPG */
|
|
#include "pixart_pah8001ei.h"
|
|
|
|
/* Utils */
|
|
#include "util_systick.h"
|
|
|
|
/* Sensors */
|
|
#include "imsensors/dht/dht_bme280.h"
|
|
|
|
pah_ret_t pah8001_impl_init(void *pdev);
|
|
pah_ret_t pah8001_impl_write(void *pdev, uint8_t reg, uint8_t *value, uint16_t len);
|
|
pah_ret_t pah8001_impl_read(void *pdev, uint8_t reg, uint8_t *value, uint16_t len);
|
|
|
|
ims_ret_t sensors_impl_i2c_xfer(void *pdev, uint16_t addr, ims_i2c_xfer_desc_t *xfer);
|
|
ims_ret_t sensors_impl_delay(void *pdev, uint32_t msec);
|
|
|
|
pah_t s_pah = {
|
|
.ops =
|
|
{
|
|
.init = pah8001_impl_init,
|
|
.write = pah8001_impl_write,
|
|
.read = pah8001_impl_read,
|
|
},
|
|
.pdev = NULL,
|
|
};
|
|
|
|
ims_bme280_t s_bme = {
|
|
.user_data = NULL,
|
|
.i2c_addr = 0x77,
|
|
.cb =
|
|
{
|
|
.i2c_xfer = sensors_impl_i2c_xfer,
|
|
.delay = sensors_impl_delay,
|
|
},
|
|
};
|
|
|
|
ims_bme280_t s_bmp = {
|
|
.user_data = NULL,
|
|
.i2c_addr = 0x76,
|
|
.cb = {
|
|
.i2c_xfer = sensors_impl_i2c_xfer,
|
|
.delay = sensors_impl_delay,
|
|
},
|
|
};
|
|
|
|
int main(void) {
|
|
BOARD_InitBootPins();
|
|
BOARD_InitBootClocks();
|
|
BOARD_InitBootPeripherals();
|
|
|
|
BOARD_InitDebugConsole();
|
|
|
|
util_systick_init();
|
|
|
|
PRINTF("Hello world!!\r\n");
|
|
|
|
pah8001_init(&s_pah);
|
|
|
|
ims_bme280_init(&s_bme);
|
|
ims_bme280_init(&s_bmp);
|
|
|
|
ims_bme280_config_t dht_cfg;
|
|
|
|
ims_bme280_preset_config(&dht_cfg, IMS_BME280_PRESET_WEATHER);
|
|
ims_bme280_apply_config(&s_bme, &dht_cfg);
|
|
ims_bme280_apply_config(&s_bmp, &dht_cfg);
|
|
ims_bme280_result_float_t r_bme_float;
|
|
ims_bme280_result_float_t r_bmp_float;
|
|
|
|
for (;;) {
|
|
ims_bme280_measure_float(&s_bme, &r_bme_float);
|
|
ims_bme280_measure_float(&s_bmp, &r_bmp_float);
|
|
|
|
PRINTF("BME T: %3.2f, H:%3.02f, P: %5.02f\r\n", r_bme_float.temperature, r_bme_float.humidity, r_bme_float.pressure);
|
|
PRINTF("BMP T: %3.2f, H:%3.02f, P: %5.02f\r\n", r_bmp_float.temperature, r_bmp_float.humidity, r_bmp_float.pressure);
|
|
|
|
util_systick_delay(500);
|
|
GPIO_PortToggle(BOARD_INITPINS_LED_R_GPIO, BOARD_INITPINS_LED_R_PORT, BOARD_INITPINS_LED_R_GPIO_PIN_MASK);
|
|
}
|
|
} |