Skip to content

Commit

Permalink
Fix typo and add nRF52840 support
Browse files Browse the repository at this point in the history
  • Loading branch information
lewisxhe committed Apr 6, 2024
1 parent 71967b5 commit d6f515c
Showing 1 changed file with 26 additions and 23 deletions.
49 changes: 26 additions & 23 deletions src/SensorBHI260AP.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
* @note Most source code references come from the https://github.com/boschsensortec/BHY2-Sensor-API
* Simplification for Arduino
*/
#pragma once

#include "bosch/BoschParse.h"
#include "bosch/SensorBhy2Define.h"
Expand Down Expand Up @@ -332,22 +333,22 @@ class SensorBHI260AP
return data;
}

void printInterruptCtrl(Stream &steram)
void printInterruptCtrl(Stream &stream)
{
uint8_t data;
__error_code = bhy2_get_host_interrupt_ctrl(&data, bhy2);
if (__error_code != BHY2_OK) {
return ;
}
steram.printf("Host interrupt control\r\n");
steram.printf("-- Wake up FIFO %s.\r\n", (data & BHY2_ICTL_DISABLE_FIFO_W) ? "disabled" : "enabled");
steram.printf("-- Non wake up FIFO %s.\r\n", (data & BHY2_ICTL_DISABLE_FIFO_NW) ? "disabled" : "enabled");
steram.printf("-- Status FIFO %s.\r\n", (data & BHY2_ICTL_DISABLE_STATUS_FIFO) ? "disabled" : "enabled");
steram.printf("-- Debugging %s.\r\n", (data & BHY2_ICTL_DISABLE_DEBUG) ? "disabled" : "enabled");
steram.printf("-- Fault %s.\r\n", (data & BHY2_ICTL_DISABLE_FAULT) ? "disabled" : "enabled");
steram.printf("-- Interrupt is %s.\r\n", (data & BHY2_ICTL_ACTIVE_LOW) ? "active low" : "active high");
steram.printf("-- Interrupt is %s triggered.\r\n", (data & BHY2_ICTL_EDGE) ? "pulse" : "level");
steram.printf("-- Interrupt pin drive is %s.\r\n", (data & BHY2_ICTL_OPEN_DRAIN) ? "open drain" : "push-pull");
stream.printf("Host interrupt control\r\n");
stream.printf("-- Wake up FIFO %s.\r\n", (data & BHY2_ICTL_DISABLE_FIFO_W) ? "disabled" : "enabled");
stream.printf("-- Non wake up FIFO %s.\r\n", (data & BHY2_ICTL_DISABLE_FIFO_NW) ? "disabled" : "enabled");
stream.printf("-- Status FIFO %s.\r\n", (data & BHY2_ICTL_DISABLE_STATUS_FIFO) ? "disabled" : "enabled");
stream.printf("-- Debugging %s.\r\n", (data & BHY2_ICTL_DISABLE_DEBUG) ? "disabled" : "enabled");
stream.printf("-- Fault %s.\r\n", (data & BHY2_ICTL_DISABLE_FAULT) ? "disabled" : "enabled");
stream.printf("-- Interrupt is %s.\r\n", (data & BHY2_ICTL_ACTIVE_LOW) ? "active low" : "active high");
stream.printf("-- Interrupt is %s triggered.\r\n", (data & BHY2_ICTL_EDGE) ? "pulse" : "level");
stream.printf("-- Interrupt pin drive is %s.\r\n", (data & BHY2_ICTL_OPEN_DRAIN) ? "open drain" : "push-pull");
}

bool isReady()
Expand Down Expand Up @@ -449,7 +450,7 @@ class SensorBHI260AP
BHY2_RLST_CHECK(__error_code != BHY2_OK, "bhy2_upload_firmware_to_flash failed!", false);
} else {
log_i("Loading firmware into RAM.\r\n");
log_i("upload size = %u", length);
log_i("upload size = %lu", length);
__error_code = bhy2_upload_firmware_to_ram(firmware, length, bhy2);
BHY2_RLST_CHECK(__error_code != BHY2_OK, "bhy2_upload_firmware_to_ram failed!", false);
}
Expand Down Expand Up @@ -500,7 +501,7 @@ class SensorBHI260AP
{
bhy2_virt_sensor_conf conf;
bhy2_get_virt_sensor_cfg(sensor_id, &conf, bhy2);
log_i("range:%u sample_rate:%f latency:%u sensitivity:%u\n", conf.range, conf.sample_rate, conf.latency, conf.sensitivity);
log_i("range:%u sample_rate:%f latency:%lu sensitivity:%u\n", conf.range, conf.sample_rate, conf.latency, conf.sensitivity);
return conf;
}

Expand All @@ -522,10 +523,9 @@ class SensorBHI260AP
}

private:

static void IRAM_ATTR handleISR(void *available)
static void IRAM_ATTR handleISR()
{
*(bool *)(available) = true;
*(bool *)(__data_available) = true;
}


Expand All @@ -545,7 +545,7 @@ class SensorBHI260AP
switch (__handler.intf) {
case BHY2_I2C_INTERFACE:
// esp32s3 test I2C maximum read and write is 64 bytes
__max_rw_lenght = 64;
__max_rw_length = 64;
BHY2_RLST_CHECK(!__handler.u.i2c_dev.wire, "Wire ptr NULL", false);
if (!SensorInterfaces::setup_interfaces(__handler)) {
log_e("setup_interfaces failed");
Expand All @@ -555,15 +555,15 @@ class SensorBHI260AP
SensorInterfaces::bhy2_i2c_read,
SensorInterfaces::bhy2_i2c_write,
SensorInterfaces::bhy2_delay_us,
__max_rw_lenght, &__handler, bhy2);
__max_rw_length, &__handler, bhy2);
BHY2_RLST_CHECK(__error_code != BHY2_OK, "bhy2_init failed!", false);
// __error_code = bhy2_set_host_intf_ctrl(BHY2_I2C_INTERFACE, bhy2);
// BHY2_RLST_CHECK(__error_code != BHY2_OK, "bhy2_set_host_intf_ctrl failed!", false);
break;

case BHY2_SPI_INTERFACE:
// esp32s3 test SPI maximum read and write is 256 bytes
__max_rw_lenght = 256;
__max_rw_length = 256;
BHY2_RLST_CHECK(!__handler.u.spi_dev.spi, "SPI ptr NULL", false);
if (!SensorInterfaces::setup_interfaces(__handler)) {
log_e("setup_interfaces failed");
Expand All @@ -573,7 +573,7 @@ class SensorBHI260AP
SensorInterfaces::bhy2_spi_read,
SensorInterfaces::bhy2_spi_write,
SensorInterfaces::bhy2_delay_us,
__max_rw_lenght,
__max_rw_length,
&__handler,
bhy2);
BHY2_RLST_CHECK(__error_code != BHY2_OK, "bhy2_init failed!", false);
Expand Down Expand Up @@ -657,9 +657,11 @@ class SensorBHI260AP

if (__handler.irq != SENSOR_PIN_NONE) {
#if defined(ARDUINO_ARCH_RP2040)
attachInterruptParam((pin_size_t)(__handler.irq), handleISR, (PinStatus )RISING, (void *)&__data_available);
attachInterrupt((pin_size_t)(__handler.irq), handleISR, (PinStatus )RISING);
#elif defined(NRF52840_XXAA) || defined(NRF52832_XXAA) || defined(ESP32)
attachInterrupt(__handler.irq, handleISR, RISING);
#else
attachInterruptArg(__handler.irq, handleISR, (void *)&__data_available, RISING);
#error "No support ."
#endif
}

Expand All @@ -670,15 +672,16 @@ class SensorBHI260AP
struct bhy2_dev *bhy2 = NULL;
SensorLibConfigure __handler;
int8_t __error_code;
volatile bool __data_available;
static volatile bool __data_available;
uint8_t *processBuffer = NULL;
size_t processBufferSize = BHY_PROCESS_BUFFER_SZIE;
const uint8_t *__firmware;
size_t __firmware_size;
bool __write_flash;
uint16_t __max_rw_lenght;
uint16_t __max_rw_length;
};

volatile bool SensorBHI260AP::__data_available;

#endif /*defined(ARDUINO)*/

Expand Down

0 comments on commit d6f515c

Please sign in to comment.