From eb129cb55a82f0239a2caf2add6bc1498651be0a Mon Sep 17 00:00:00 2001 From: "Michael D. M. Dryden" <mdryden@chem.utoronto.ca> Date: Thu, 26 Nov 2015 10:32:09 -0500 Subject: [PATCH] Stores offset trimming for each gain resistor. --- DSTAT/src/config/conf_board.h | 8 +++++++- DSTAT/src/settings.c | 38 +++++++++++++++++++++++++++++++++-- DSTAT/src/settings.h | 9 ++++++++- 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/DSTAT/src/config/conf_board.h b/DSTAT/src/config/conf_board.h index 4fb468e..a57fbf6 100644 --- a/DSTAT/src/config/conf_board.h +++ b/DSTAT/src/config/conf_board.h @@ -16,6 +16,12 @@ #define SETTINGS_MAX5443_OFFSET 0 #define SETTINGS_TCS_ENABLED 0 #define SETTINGS_TCS_CLEAR_THRESHOLD 10000U - +#define SETTINGS_R100_TRIM 0 +#define SETTINGS_R3k_TRIM 0 +#define SETTINGS_R30k_TRIM 0 +#define SETTINGS_R300k_TRIM 0 +#define SETTINGS_R3M_TRIM 0 +#define SETTINGS_R30M_TRIM 0 +#define SETTINGS_R100M_TRIM 0 #endif // CONF_BOARD_H diff --git a/DSTAT/src/settings.c b/DSTAT/src/settings.c index 8b81a1d..b68b37c 100644 --- a/DSTAT/src/settings.c +++ b/DSTAT/src/settings.c @@ -24,7 +24,17 @@ void settings_handler(char command){ break; case 'W': //Write new settings - scanf("%i%hhu%u", &settings.settings.max5443_offset, &settings.settings.tcs_enabled, &settings.settings.tcs_clear_threshold); + scanf("%i%hhu%u%i%i%i%i%i%i%i", + &settings.settings.max5443_offset, + &settings.settings.tcs_enabled, + &settings.settings.tcs_clear_threshold, + &settings.settings.r100_trim, + &settings.settings.r3k_trim, + &settings.settings.r30k_trim, + &settings.settings.r300k_trim, + &settings.settings.r3M_trim, + &settings.settings.r30M_trim, + &settings.settings.r100M_trim); settings_write_eeprom(); break; @@ -43,7 +53,24 @@ void settings_read_eeprom(void){ printf("#INFO: max5443_offset = %u\n\r", settings.settings.max5443_offset); printf("#INFO: tls_enabled = %u\n\r", settings.settings.tcs_enabled); printf("#INFO: tls_clear_threshold = %u\n\r", settings.settings.tcs_clear_threshold); - printf("Smax5443_offset.%u:tcs_enabled.%u:tcs_clear_threshold.%u\n\r", settings.settings.max5443_offset, settings.settings.tcs_enabled, settings.settings.tcs_clear_threshold); + printf("#INFO: r100_trim = %i\n\r", settings.settings.r100_trim); + printf("#INFO: r3k_trim = %i\n\r", settings.settings.r3k_trim); + printf("#INFO: r30k_trim = %i\n\r", settings.settings.r30k_trim); + printf("#INFO: r300k_trim = %i\n\r", settings.settings.r300k_trim); + printf("#INFO: r3M_trim = %i\n\r", settings.settings.r3M_trim); + printf("#INFO: r30M_trim = %i\n\r", settings.settings.r30M_trim); + printf("#INFO: r100M_trim = %i\n\r", settings.settings.r100M_trim); + printf("Smax5443_offset.%u:tcs_enabled.%u:tcs_clear_threshold.%u:r100_trim.%i:r3k_trim.%i:r30k_trim.%i:r300k_trim.%i:r3M_trim.%i:r30M_trim.%i:r100M_trim.%i\n\r", + settings.settings.max5443_offset, + settings.settings.tcs_enabled, + settings.settings.tcs_clear_threshold, + settings.settings.r100_trim, + settings.settings.r3k_trim, + settings.settings.r30k_trim, + settings.settings.r300k_trim, + settings.settings.r3M_trim, + settings.settings.r30M_trim, + settings.settings.r100M_trim); } void settings_write_eeprom(void){ @@ -57,6 +84,13 @@ void settings_restore_defaults(void){ settings.settings.max5443_offset = SETTINGS_MAX5443_OFFSET; settings.settings.tcs_enabled = SETTINGS_TCS_ENABLED; settings.settings.tcs_clear_threshold = SETTINGS_TCS_CLEAR_THRESHOLD; + settings.settings.r100_trim = SETTINGS_R100_TRIM; + settings.settings.r3k_trim = SETTINGS_R3k_TRIM; + settings.settings.r30k_trim = SETTINGS_R30k_TRIM; + settings.settings.r300k_trim = SETTINGS_R300k_TRIM; + settings.settings.r3M_trim = SETTINGS_R3M_TRIM; + settings.settings.r30M_trim = SETTINGS_R30M_TRIM; + settings.settings.r100M_trim = SETTINGS_R100M_TRIM; settings_write_eeprom(); } diff --git a/DSTAT/src/settings.h b/DSTAT/src/settings.h index 2c8ccbb..c63f014 100644 --- a/DSTAT/src/settings.h +++ b/DSTAT/src/settings.h @@ -22,11 +22,18 @@ struct settings_list { //Make sure this doesn't exceed 32 bytes int16_t max5443_offset; uint8_t tcs_enabled; uint16_t tcs_clear_threshold; + int16_t r100_trim; + int16_t r3k_trim; + int16_t r30k_trim; + int16_t r300k_trim; + int16_t r3M_trim; + int16_t r30M_trim; + int16_t r100M_trim; //20 bytes }; union { struct settings_list settings; - char temp_char[EEPROM_PAGE_SIZE]; + char temp_char[EEPROM_PAGE_SIZE]; //makes sure struct fills whole page } settings; void settings_handler(char command); -- GitLab