Browse Source

添加电池电量

master
zhaohe 11 months ago
parent
commit
1b13e106b1
  1. 5
      README.md
  2. 7
      app/src/acid_dispenser_ble_slave_main.c
  3. 16
      app/src/app_service/battery_mgr_service.c
  4. 2
      app/src/app_service/battery_mgr_service.h

5
README.md

@ -12,4 +12,9 @@ V1.0
```
```
µç³Ø·ÅµçÇúÏß:
https://blog.csdn.net/daoshuti/article/details/76163942
```

7
app/src/acid_dispenser_ble_slave_main.c

@ -79,8 +79,8 @@ void one_conduction_process_rx_packet(uint8_t* rx, int len) {
ZLOGI("update state mode:%d state:%d", workmode, pumpworkstate);
zapp_get_gstate()->last_usr_operation_time = znordic_getpower_on_ms();
zapp_get_gstate()->hand_acid_mode = workmode;
zapp_get_gstate()->work_state = pumpworkstate;
zapp_get_gstate()->hand_acid_mode = workmode;
zapp_get_gstate()->work_state = pumpworkstate;
send_success_receipt(rxheader, NULL, 0);
return;
@ -264,8 +264,9 @@ void pre_process_state(app_event_t* event, uint16_t event_size) {
if (battery_mgr_get_battery_level() < 30) {
light_ctrl_trigger_once_low_power();
}
// ZLOGI("battery level:%d",battery_mgr_get_battery_level());
}
// ZLOGI("battery level:%d", (int)(battery_mgr_get_battery_level()));
cnt++;
}
}

16
app/src/app_service/battery_mgr_service.c

@ -1,9 +1,9 @@
#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
#include "board/board.h"
#define BATTERY_ADC_CHANNEL 1 // 不重复即可
#define BATTERY_ADC_PIN NRF_SAADC_INPUT_AIN3
void battery_mgr_init() {
// BATADC
@ -15,8 +15,7 @@ void battery_mgr_init() {
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() {
int 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);
@ -24,5 +23,10 @@ int16_t battery_mgr_get_battery_level() {
ZLOGE("nrfx_saadc_sample_convert(%d) fail err_code:%d", BATTERY_ADC_CHANNEL, err_code);
return 0;
}
return value;
float voltage = value / 4096.0 * 3.6 + 0.3; // 0.3
float percent = (voltage - 1.8) / (3.2 - 1.8) * 100;
if (percent > 100) percent = 100;
if (percent < 0) percent = 2;
return percent;
}

2
app/src/app_service/battery_mgr_service.h

@ -7,5 +7,5 @@
#include "znordic.h"
void battery_mgr_init();
int16_t battery_mgr_get_battery_level();
int battery_mgr_get_battery_level();
Loading…
Cancel
Save