From a3184e8f8cde20091e5015bfbc121363cfd6df9d Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 28 Aug 2024 11:25:31 +0800 Subject: [PATCH] init proj --- app/src/acid_dispenser_ble_slave_main.c | 14 +++++++++++--- app/src/app_service/battery_mgr_service.c | 26 ++++++++++++++++++++++++-- app/src/board/board.h | 14 +++++++------- 3 files changed, 42 insertions(+), 12 deletions(-) diff --git a/app/src/acid_dispenser_ble_slave_main.c b/app/src/acid_dispenser_ble_slave_main.c index c8cbb68..d65bbc6 100644 --- a/app/src/acid_dispenser_ble_slave_main.c +++ b/app/src/acid_dispenser_ble_slave_main.c @@ -217,12 +217,20 @@ void pre_process_state(app_event_t* event, uint16_t event_size) { static int32_t cnt; if (eventType == kappevent_tmr_1s_scheduler_event) { ZLOGI("scheduler....."); - if (cnt % 5 == 0 && zble_module_is_connected()) { + if (cnt % 10 == 0 && zble_module_is_connected()) { send_report_heart(battery_mgr_get_battery_level(), zapp_get_gstate()->reset_flag, 1); } - if (cnt % 5 == 0) { - light_ctrl_trigger_once_low_power(); + if (cnt % 30 == 0) { + // light_ctrl_trigger_once_low_power(); + // ZLOGI("battery level:%d",battery_mgr_get_battery_level()); + } + + if (cnt % 30 == 0) { + if (battery_mgr_get_battery_level() < 30) { + light_ctrl_trigger_once_low_power(); + } + // ZLOGI("battery level:%d",battery_mgr_get_battery_level()); } cnt++; } diff --git a/app/src/app_service/battery_mgr_service.c b/app/src/app_service/battery_mgr_service.c index 11cd860..8a5d38b 100644 --- a/app/src/app_service/battery_mgr_service.c +++ b/app/src/app_service/battery_mgr_service.c @@ -1,6 +1,28 @@ #include "battery_mgr_service.h" +#include "board/board.h" #include "app_basic_service/zapp_core.h" +#define BATTERY_ADC_CHANNEL 1 // 不重复即可 +#define BATTERY_ADC_PIN NRF_SAADC_INPUT_AIN3 -void battery_mgr_init() {} -int16_t battery_mgr_get_battery_level() { return 99; } +void battery_mgr_init() { + // BATADC + nrf_drv_saadc_config_t adccfg = NRFX_SAADC_DEFAULT_CONFIG; + adccfg.resolution = NRF_SAADC_RESOLUTION_12BIT; // 4096 等于满采样率 + ZERROR_CHECK(nrf_drv_saadc_init(&adccfg, NULL)); + + nrf_saadc_channel_config_t channel_config = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(BATADC); + channel_config.acq_time = NRF_SAADC_ACQTIME_40US; + ZERROR_CHECK(nrfx_saadc_channel_init(BATTERY_ADC_CHANNEL, &channel_config)); +} +int16_t battery_mgr_get_battery_level() { + + nrf_saadc_value_t value; + ret_code_t err_code; + err_code = nrfx_saadc_sample_convert(BATTERY_ADC_CHANNEL, &value); + if (err_code != NRF_SUCCESS) { + ZLOGE("nrfx_saadc_sample_convert(%d) fail err_code:%d", BATTERY_ADC_CHANNEL, err_code); + return 0; + } + return value; +} diff --git a/app/src/board/board.h b/app/src/board/board.h index 2e2f056..2d6ef65 100644 --- a/app/src/board/board.h +++ b/app/src/board/board.h @@ -7,10 +7,10 @@ // P0.17 KEY2 反转按键 低有效 // P0.05 BATADC 电量 Vadc=Vbat -#define NRF_DBG_LED1 28 // Debug LED -#define LEDR 31 // Tri-color LED High effective -#define LEDG 30 // -#define LEDB 29 // -#define ADD_ACID_KEY 15 // Add Acid Key Low effective -#define REVERSE_KEY 17 // Reverse Key Low effective -#define BATADC 5 // Battery Voltage Vadc=Vbat \ No newline at end of file +#define NRF_DBG_LED1 28 // Debug LED +#define LEDR 31 // Tri-color LED High effective +#define LEDG 30 // +#define LEDB 29 // +#define ADD_ACID_KEY 15 // Add Acid Key Low effective +#define REVERSE_KEY 17 // Reverse Key Low effective +#define BATADC NRF_SAADC_INPUT_AIN3 // Pin5对应的就是ADC3通道 \ No newline at end of file