From d31f03b6c76023518a2565d4114bb2e61ae0914e Mon Sep 17 00:00:00 2001 From: "Sebastian H. Gabrielli" Date: Sun, 28 Apr 2024 20:19:57 +0200 Subject: [PATCH] Delete unused EEPROM code & update comments We don't use a lot of the written EEPROM code. This unused code has now been deleted --- prosjekt.X/eeprom.c | 93 ++++++--------------------------------------- prosjekt.X/eeprom.h | 18 ++------- prosjekt.X/i2c.h | 2 +- 3 files changed, 16 insertions(+), 97 deletions(-) diff --git a/prosjekt.X/eeprom.c b/prosjekt.X/eeprom.c index 2463a0b..a0db672 100644 --- a/prosjekt.X/eeprom.c +++ b/prosjekt.X/eeprom.c @@ -3,15 +3,7 @@ // The start address for the controller data uint16_t EEMEM start_address_controller = 0x1400; -// Where the writing of the fans points start -uint16_t EEMEM start_address_fan1 = 0x1400 + 0x30; -uint16_t EEMEM start_address_fan2 = 0x1400 + 0x60; - -// The placement for the next datapoint form the fans. -uint16_t EEMEM current_address_fan1 = 0x1400 + 0x30; -uint16_t EEMEM current_address_fan2 = 0x1400 + 0x60; - -// Checks if the EEPROM memory is ready to be written in. +// Checks if the EEPROM memory is ready to be written in and waits until it is. void check_eeprom_is_ready(){ while(1){ if (eeprom_is_ready()){ @@ -23,91 +15,28 @@ void check_eeprom_is_ready(){ } -// Takes inn a struct by the form of config_t -// Checks if the eeprom is ready to be written in -// Checks if it has been written information at the address -// If true, the infromation is replaced with the intaken struct -// else the intaken struct is written at the address. void write_struct_from_EEPROM(config_t write_struct){ + // Calculate the required storage size uint8_t struct_size = sizeof(write_struct); + // Wait for the EEPROM to be ready check_eeprom_is_ready(); + // Update the stored config stuct eeprom_update_block((void*) &write_struct,(void*) &start_address_controller, struct_size); - } -// Reads the memory block at the address start_address_controller -// returns a struct in form of config_t config_t read_struct_from_EEPROM(){ - //is eeprom ready?? - config_t read_struct; + // Create a config struct to hold the received data + config_t read_struct = { 0 }; uint8_t struct_size = sizeof(read_struct); + // Wait for the EEPROM to be ready check_eeprom_is_ready(); + // Read the data from the EEPROM eeprom_read_block((void *) &read_struct,(void*) &start_address_controller, struct_size); + + // Return the data return read_struct; -} - -// Takes inn a dataPoint and what data set it belongs to -// checks if EEPROM is ready -// If the dataset is 1, the datapoint is written at the address. -// If the dataset is 2 its written at another point. -int write_data_point_in_EEPROM(uint8_t byte, uint8_t fan_num){ - - check_eeprom_is_ready(); - if (fan_num == 1){ - eeprom_write_byte(0x30, byte); - current_address_fan1++; - return 1; - } else if (fan_num == 2){ - eeprom_update_byte(current_address_fan2, byte); - current_address_fan2++; - return 1; - } else{ - return 0; - } -} - -// Reads all the datapoints to the choosen data. -// it writes the data points in the USART stream. -uint8_t read_data_point_speed_info(uint8_t fan_num, uint8_t *array){ - uint8_t byte = 0; - - if (fan_num == 1){ - uint8_t len = current_address_fan1 - start_address_fan1; - - check_eeprom_is_ready(); - - for (uint8_t i = 0; i #include - - // Struct for information on the controller. typedef struct { uint16_t ms_fanspeed_sample_rate; } config_t; -// Check if EEPROM is ready to be written in +// Check if EEPROM is ready to be written to void check_eeprom_is_ready(); -// Writes a struct in EEPROM +// Writes a config_t struct to the EEPROM void write_struct_from_EEPROM(config_t write_struct); -// Read data from EEPROM and return it as a controller struct +// Read data from EEPROM and return it as a config_t struct config_t read_struct_from_EEPROM(); -// Writes a datapoint in EEPROM -int write_data_point_in_EEPROM(uint8_t byte, uint8_t fan_num); - -// Reads all the dataPoints form EEPROM -uint8_t read_data_point_speed_info(uint8_t fan_num, uint8_t *array); - -uint8_t read_single_data_point_speed_info(uint8_t fan_num, uint8_t pos); - #ifdef __cplusplus } diff --git a/prosjekt.X/i2c.h b/prosjekt.X/i2c.h index cd7c646..1272b11 100644 --- a/prosjekt.X/i2c.h +++ b/prosjekt.X/i2c.h @@ -21,7 +21,7 @@ extern "C" { #include // Received data buffer size -// The size is larger than any expected command lenght +// The size is larger than any expected command length #define I2C_RECV_BUF_SIZE 16 // Reset recv to initial state