10#define PARAMETROS_PERSISTENTES_MAGIC 0x5041524DU
11#define PARAMETROS_PERSISTENTES_VERSION 3U
31 .histeresis_deci_celsius = 20U,
32 .tiempo_minimo_encendido_ms = 0U,
33 .tiempo_minimo_apagado_ms = 0U,
34 .modo_calentar =
true,
45 const uint8_t* bytes = (
const uint8_t*) datos;
46 uint32_t crc = 0xFFFFFFFFU;
49 for (indice = 0U; indice < longitud; ++indice) {
51 for (uint32_t bit = 0U; bit < 8U; ++bit) {
52 if ((crc & 1U) != 0U) {
53 crc = (crc >> 1U) ^ 0xEDB88320U;
97 return (persistentes->
crc
143 if (nuevos_parametros == 0) {
bool driver_eeprom_read(void *destino, uint32_t cantidad)
Lee un bloque desde la region reservada de EEPROM.
bool driver_eeprom_write(const void *origen, uint32_t cantidad)
Escribe un bloque dentro de la region reservada de EEPROM.
Driver de acceso a la EEPROM interna del LPC4337.
static void parametros_serializar(parametros_persistentes_t *persistentes)
Genera la imagen persistida a partir de la copia viva en RAM.
static void parametros_cargar_defaults_en_ram(void)
static uint32_t parametros_calcular_crc32(const void *datos, uint32_t longitud)
Calcula el CRC32 del bloque persistido de parametros.
#define PARAMETROS_PERSISTENTES_VERSION
static const parametros_control_t parametros_default_
#define PARAMETROS_PERSISTENTES_MAGIC
bool parametros_guardar(void)
bool parametros_actualizar(const parametros_control_t *nuevos_parametros)
static parametros_control_t parametros_actuales_
static bool parametros_persistentes_validos(const parametros_persistentes_t *persistentes)
Valida magic, version, tamano y CRC antes de aceptar EEPROM.
bool parametros_init(void)
void parametros_restablecer_defaults(void)
const parametros_control_t * parametros_obtener(void)
Persistencia y administracion de parametros de la aplicacion.
uint32_t tiempo_minimo_apagado_ms
uint16_t histeresis_deci_celsius
uint32_t tiempo_minimo_encendido_ms
int16_t setpoint_deci_celsius
Formato persistido en EEPROM para los parametros de la aplicacion.
parametros_control_t datos