SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SensorBHI260AP.cpp
Go to the documentation of this file.
1
30#include "../../../SensorBuildOpt.h"
31#if !SENSORLIB_EXCLUDE_BHI260
32
33#include "SensorBHI260AP.hpp"
34
35void SensorBHI260AP::setBootFromFlash(bool boot_from_flash)
36{
37 _boot_from_flash = boot_from_flash;
38}
39
40uint8_t SensorBHI260AP::digitalRead(uint8_t pin, bool pullup)
41{
42 if (pin > JTAG_DIO)return 0;
43 uint32_t pin_mask = pin | BHY2_GPIO_SET;
44 if (pullup) {
45 pin_mask |= (BHY2_INPUT_PULLUP << 8);
46 } else {
47 pin_mask |= (BHY2_INPUT << 8);
48 }
49 bhy2_set_virt_sensor_cfg(BHY2_SENSOR_ID_GPIO_EXP, (float)pin_mask, 0, dev.get());
50 pin_mask = pin /*GetCmd*/;
51 bhy2_set_virt_sensor_cfg(BHY2_SENSOR_ID_GPIO_EXP, (float)pin_mask, 0, dev.get());
52 bhy2_virt_sensor_conf conf;
53 bhy2_get_virt_sensor_cfg(BHY2_SENSOR_ID_GPIO_EXP, &conf, dev.get());
54 uint8_t level = conf.sample_rate;
55 return level;
56}
57
58void SensorBHI260AP::digitalWrite(uint8_t pin, uint8_t level)
59{
60 if (pin > JTAG_DIO)return;
61 uint32_t pin_mask = pin | (BHY2_OUTPUT << 8) | (level << 6) | BHY2_GPIO_SET ;
62 bhy2_set_virt_sensor_cfg(BHY2_SENSOR_ID_GPIO_EXP, (float)pin_mask, 0, dev.get());
63}
64
66{
67 if (pin > JTAG_DIO)return;
68 uint32_t pin_mask = pin | (BHY2_OPEN_DRAIN << 8) | BHY2_GPIO_SET;
69 bhy2_set_virt_sensor_cfg(BHY2_SENSOR_ID_GPIO_EXP, (float)pin_mask, 0, dev.get());
70}
71
73{
74 return BHI260_CHIP_ID;
75}
76
77#endif
uint8_t level
void digitalWrite(uint8_t pin, uint8_t level)
digitalWrite
uint8_t digitalRead(uint8_t pin, bool pullup=false)
digitalRead
void disableGpio(uint8_t pin)
disableGpio
uint16_t getConfirmationIDImpl() override
Get the confirmation ID for the sensor.
void setBootFromFlash(bool boot_from_flash)
setBootFromFlash