Files
BC3D-firmware/app/by_param.c

47 lines
1.2 KiB
C
Raw Normal View History

2024-04-25 22:31:01 +08:00
#include "by_param.h"
#include <string.h>
#include "eeprom.h"
#include "by_debug.h"
by_param_type param_index[BY_PARAM_NUM_MAX];
uint16_t param_num = 0;
by_error_status by_param_init(void)
{
param_num = 0;
return BY_SUCCESS;
}
by_error_status by_param_reg(uint16_t reg_addr, uint16_t *data_ptr, const char *data_str)
{
param_index[param_num].reg_addr = reg_addr;
param_index[param_num].data_ptr = data_ptr;
strncpy(param_index[param_num].data_str, data_str, sizeof(param_index[param_num].data_str));
LOGD("reg data [%s]: addr-0x%04x", param_index[param_num].data_str, param_index[param_num].reg_addr);
param_num++;
return BY_SUCCESS;
}
by_error_status by_param_load_from_ee(uint16_t reg_addr)
{
for (int i = 0; i < param_num; i++) {
if (param_index[i].reg_addr == reg_addr) {
flash_ee_data_read(reg_addr, param_index[i].data_ptr);
return BY_SUCCESS;
}
}
return BY_ERROR;
}
by_error_status by_param_save_to_ee(uint16_t reg_addr)
{
for (int i = 0; i < param_num; i++) {
if (param_index[i].reg_addr == reg_addr) {
flash_ee_data_write(reg_addr, *param_index[i].data_ptr);
return BY_SUCCESS;
}
}
return BY_ERROR;
}