From 9514e47ed35d916496ef53713633b80e5527765f Mon Sep 17 00:00:00 2001 From: Pascal Langer Date: Sun, 9 Jun 2019 14:51:21 +0200 Subject: [PATCH] BUGS EEPROM clean: need to rebind BUGS and BUGSMINI --- Multiprotocol/Bugs_a7105.ino | 23 ++++++++++++----------- Multiprotocol/Multiprotocol.h | 6 +++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Multiprotocol/Bugs_a7105.ino b/Multiprotocol/Bugs_a7105.ino index b99bc18..81b5869 100644 --- a/Multiprotocol/Bugs_a7105.ino +++ b/Multiprotocol/Bugs_a7105.ino @@ -284,10 +284,11 @@ static void __attribute__((unused))BUGS_set_radio_data() { offset=BUGS_NUM_RFCHAN; // Read radio_id from EEPROM - radio_id=0; uint8_t base_adr=BUGS_EEPROM_OFFSET+RX_num*4; - for(uint8_t i=0; i<4; i++) - radio_id|=eeprom_read_byte((EE_ADDR)(base_adr+i))<<(i*8); + uint16_t rxid=0; + for(uint8_t i=0; i<2; i++) + rxid|=eeprom_read_byte((EE_ADDR)(base_adr+i))<<(i*8); + radio_id = BUGS_rxid_to_radioid(rxid); } A7105_WriteID(radio_id); @@ -374,10 +375,10 @@ uint16_t ReadBUGS(void) BIND_DONE; // set radio_id rxid = (packet[1] << 8) + packet[2]; + base_adr=BUGS_EEPROM_OFFSET+RX_num*2; + for(uint8_t i=0; i<2; i++) + eeprom_write_byte((EE_ADDR)(base_adr+i),rxid>>(i*8)); // Save rxid in EEPROM radio_id = BUGS_rxid_to_radioid(rxid); - base_adr=BUGS_EEPROM_OFFSET+RX_num*4; - for(uint8_t i=0; i<4; i++) - eeprom_write_byte((EE_ADDR)(base_adr+i),radio_id>>(i*8)); // Save radio_id in EEPROM BUGS_set_radio_data(); phase = BUGS_DATA_1; packet_count = 0; @@ -437,11 +438,11 @@ uint16_t ReadBUGS(void) uint16_t initBUGS(void) { - uint32_t radio_id=0; - uint8_t base_adr=BUGS_EEPROM_OFFSET+RX_num*4; - for(uint8_t i=0; i<4; i++) - radio_id|=eeprom_read_byte((EE_ADDR)(base_adr+i))<<(i*8); - if(radio_id==0xffffffff) + uint16_t rxid=0; + uint8_t base_adr=BUGS_EEPROM_OFFSET+RX_num*2; + for(uint8_t i=0; i<2; i++) + rxid|=eeprom_read_byte((EE_ADDR)(base_adr+i))<<(i*8); + if(rxid==0xffff) BIND_IN_PROGRESS; BUGS_set_radio_data(); diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 31e5f30..9fa19c1 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 2 #define VERSION_REVISION 1 -#define VERSION_PATCH_LEVEL 59 +#define VERSION_PATCH_LEVEL 60 //****************** // Protocols @@ -543,8 +543,8 @@ enum { #define EEPROM_ID_VALID_OFFSET 20 // 1 byte flag that ID is valid #define MODELMODE_EEPROM_OFFSET 30 // Autobind mode, 1 byte per model, end is 30+16=46 #define AFHDS2A_EEPROM_OFFSET 50 // RX ID, 4 bytes per model id, end is 50+64=114 -#define BUGS_EEPROM_OFFSET 114 // TX ID, 4 bytes per model id, end is 114+64=178 -#define BUGSMINI_EEPROM_OFFSET 178 // RX ID, 2 bytes per model id, end is 178+32=210 +#define BUGS_EEPROM_OFFSET 114 // RX ID, 2 bytes per model id, end is 114+32=146 +#define BUGSMINI_EEPROM_OFFSET 146 // RX ID, 2 bytes per model id, end is 146+32=178 //#define CONFIG_EEPROM_OFFSET 210 // Current configuration of the multimodule //****************************************