bc_config
functions helps you to easily create a variable or structure of variables that are saved in internal EEPROM memory.
Library will automatically initialize your configuration when:
- it runs first time
- if the signature parameter is different
- if the new configuration structure has different length
- if the EEPROM is corrupted
Doxygen documentation of bc_config
The first parameter, signature
, is unique number for your firmware. This way if you load a different firmware to the Core Module that is using configuration structure with the same length, the library will see that and initialize the confguration properly again.
The last parameter *init_config can be:
NULL
- the config structure is zeroed when initialized- pointer to structure - the
init_config
is copied to theconfig
structure when initialized
// Load configuration
bc_config_init(0x12345678, &config, sizeof(config), NULL);
// Example structure that save configuration of PIR detector
typedef struct config_t
{
uint16_t report_interval;
uint8_t pir_sensitivity;
uint16_t pir_deadtime;
} config_t;
config_t config;
void application_init()
{
// Load configuration
bc_config_init(0x12345678, &config, sizeof(config), NULL);
// Change parameter
config.report_interval = 500;
// Save config to EEPROM
bc_config_save();
// Reset configuration
bc_config_reset();
}