현재 IMU 센서는 폴링 방식 적용

- app_raw_main.c: 인터럽트 방식 적용을 위한 레거시 파일
This commit is contained in:
jhChun
2026-03-26 11:06:52 +09:00
parent ed3a8d7acd
commit e461f59a5f
6 changed files with 19 additions and 574 deletions
@@ -472,7 +472,10 @@ extern const nrfx_twi_t m_twi_icm42670;
#define IMU_I2C_ADDR 0x68
#define REG_ACCEL_X1 0x0B /* ACCEL_DATA_X1 — 가속도 X축 상위 바이트 레지스터 */
/* Direct IMU register read — raw I2C, no DRDY, sends rsp: via BLE */
/* --------------------------------------------------------------------------------------
* Direct IMU register read — raw I2C, no DRDY, sends rsp: via BLE
* 직접 I2C로 레지스터 읽는 방식 (인터럽트 X, IMU 드라이버 API X)
* -------------------------------------------------------------------------------------- */
int imu_read_direct(void)
{
uint8_t raw[12]; /* 가속도 6바이트 + 자이로 6바이트 */
@@ -512,12 +515,17 @@ int imu_read_direct(void)
/* ACCEL_DATA_X1(0x0B)부터 12바이트 연속 읽기 (0x0B~0x16) */
reg = REG_ACCEL_X1;
ret = icm42670_twi_tx(IMU_I2C_ADDR, &reg, 1, true); /* 레지스터 주소 전송 (STOP 없음) */
if (ret) {
if (ret)
{
DBG_PRINTF("[IMU] tx FAIL %u\r\n", ret);
return -1;
}
ret = icm42670_twi_rx(IMU_I2C_ADDR, raw, 12); /* 12바이트 데이터 수신 */
if (ret) {
if (ret)
{
DBG_PRINTF("[IMU] rx FAIL %u\r\n", ret);
return -2;
}
@@ -6,6 +6,13 @@
* @brief
******************************************************************************/
/*******************************************************************************
* 2026.03.26 jhChun
*
* app_raw.c imu_read_direct()
*
******************************************************************************/
/*******************************************************************************
* [ ] ICM42670P
*
@@ -196,8 +203,7 @@ int icm42670_init(void)
* 3) (get_imu_data)
* 4)
*
* : , ISR에서는
* I2C .
* : , ISR에서는 I2C .
*/
void icm42670_main(void)
{