Move uptime update, use uptime for event timestamp

This commit is contained in:
Cabooman 2024-04-26 21:48:13 +02:00
parent 39e8682d43
commit 6943963907
2 changed files with 5 additions and 3 deletions

View file

@ -226,7 +226,6 @@ void core_loop(void* task_time_us) {
if (millis() - previousMillisUpdateVal >= intervalUpdateValues) // Every 5s normally if (millis() - previousMillisUpdateVal >= intervalUpdateValues) // Every 5s normally
{ {
previousMillisUpdateVal = millis(); previousMillisUpdateVal = millis();
uptime::calculateUptime(); // millis() overflows every 50 days, so update occasionally to adjust
update_SOC(); // Check if real or calculated SOC% value should be sent update_SOC(); // Check if real or calculated SOC% value should be sent
update_values(); // Update values heading towards inverter. Prepare for sending on CAN, or write directly to Modbus. update_values(); // Update values heading towards inverter. Prepare for sending on CAN, or write directly to Modbus.
if (DUMMY_EVENT_ENABLED) { if (DUMMY_EVENT_ENABLED) {

View file

@ -6,6 +6,7 @@
#include "../../../USER_SETTINGS.h" #include "../../../USER_SETTINGS.h"
#include "timer.h" #include "timer.h"
#include "../../lib/Uptime_Library/src/uptime.h"
#define EE_NOF_EVENT_ENTRIES 30 #define EE_NOF_EVENT_ENTRIES 30
#define EE_EVENT_ENTRY_SIZE sizeof(EVENT_LOG_ENTRY_TYPE) #define EE_EVENT_ENTRY_SIZE sizeof(EVENT_LOG_ENTRY_TYPE)
@ -165,7 +166,7 @@ void init_events(void) {
events.entries[EVENT_EEPROM_WRITE].log = false; // Don't log the logger... events.entries[EVENT_EEPROM_WRITE].log = false; // Don't log the logger...
events.second_timer.set_interval(1000); events.second_timer.set_interval(600);
// Write to EEPROM every X minutes (if an event has been set) // Write to EEPROM every X minutes (if an event has been set)
events.ee_timer.set_interval(EE_WRITE_PERIOD_MINUTES * 60 * 1000); events.ee_timer.set_interval(EE_WRITE_PERIOD_MINUTES * 60 * 1000);
events.update_timer.set_interval(2000); events.update_timer.set_interval(2000);
@ -352,8 +353,10 @@ static void update_event_level(void) {
} }
static void update_event_time(void) { static void update_event_time(void) {
// This should run roughly 2 times per second
if (events.second_timer.elapsed() == true) { if (events.second_timer.elapsed() == true) {
events.time_seconds++; uptime::calculateUptime(); // millis() overflows every 50 days, so update occasionally to adjust
events.time_seconds = uptime::getSeconds();
} }
} }