47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
#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;
|
|
}
|