mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 22:08:12 +00:00
BUGS: fix
This commit is contained in:
parent
5fe1e9674e
commit
09c6adaa95
@ -289,17 +289,7 @@ void A7105_Init(void)
|
|||||||
|
|
||||||
#ifdef BUGS_A7105_INO
|
#ifdef BUGS_A7105_INO
|
||||||
if(protocol==PROTO_BUGS)
|
if(protocol==PROTO_BUGS)
|
||||||
{
|
|
||||||
if(IS_BIND_DONE)
|
|
||||||
{ // 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;
|
|
||||||
}
|
|
||||||
A7105_WriteID(radio_id);
|
|
||||||
A7105_Regs=(uint8_t*)BUGS_A7105_regs;
|
A7105_Regs=(uint8_t*)BUGS_A7105_regs;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#ifdef HUBSAN_A7105_INO
|
#ifdef HUBSAN_A7105_INO
|
||||||
|
@ -275,17 +275,25 @@ const uint8_t PROGMEM BUGS_hop []= {
|
|||||||
0x4b, 0x19, 0x35, 0x1e, 0x63, 0x0f, 0x45, 0x21, 0x51, 0x3a, 0x5d, 0x25, 0x0a, 0x44, 0x61, 0x27, // data phase ID=0xA4C56AB4 for txid 767194 if rx responds C6 BB 57 7F 00 00 00 00 00 00 FF 87 40 00 00 00
|
0x4b, 0x19, 0x35, 0x1e, 0x63, 0x0f, 0x45, 0x21, 0x51, 0x3a, 0x5d, 0x25, 0x0a, 0x44, 0x61, 0x27, // data phase ID=0xA4C56AB4 for txid 767194 if rx responds C6 BB 57 7F 00 00 00 00 00 00 FF 87 40 00 00 00
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __attribute__((unused))BUGS_set_radio_data(uint8_t index)
|
static void __attribute__((unused))BUGS_set_radio_data()
|
||||||
{ // captured radio data for bugs rx/tx version A2
|
{ // captured radio data for bugs rx/tx version A2
|
||||||
// it appears that the hopping frequencies are determined by the txid
|
// it appears that the hopping frequencies are determined by the txid
|
||||||
// and the data phase radio id is determined by the first 2 bytes of the
|
// and the data phase radio id is determined by the first 2 bytes of the
|
||||||
// rx bind packet
|
// rx bind packet
|
||||||
if(index==0)
|
uint8_t offset=0;
|
||||||
radio_id=0xac59a453; // bind phase ID=0xac59a453
|
uint32_t radio_id=0xac59a453; // bind phase ID=0xac59a453
|
||||||
else // 1
|
|
||||||
radio_id=0xA4C56AB4; // data phase ID=0xA4C56AB4 for txid 767194 if rx responds C6 BB 57 7F 00 00 00 00 00 00 FF 87 40 00 00 00
|
if(IS_BIND_DONE)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
A7105_WriteID(radio_id);
|
||||||
|
|
||||||
uint8_t offset=index*BUGS_NUM_RFCHAN;
|
|
||||||
for(uint8_t i=0; i<BUGS_NUM_RFCHAN;i++)
|
for(uint8_t i=0; i<BUGS_NUM_RFCHAN;i++)
|
||||||
hopping_frequency[i]=pgm_read_byte_near( &BUGS_hop[i+offset] );
|
hopping_frequency[i]=pgm_read_byte_near( &BUGS_hop[i+offset] );
|
||||||
}
|
}
|
||||||
@ -313,6 +321,7 @@ uint16_t ReadBUGS(void)
|
|||||||
{
|
{
|
||||||
uint8_t mode, timeout, base_adr;
|
uint8_t mode, timeout, base_adr;
|
||||||
uint16_t rxid;
|
uint16_t rxid;
|
||||||
|
uint32_t radio_id;
|
||||||
|
|
||||||
// keep frequency tuning updated
|
// keep frequency tuning updated
|
||||||
#ifndef FORCE_FLYSKY_TUNING
|
#ifndef FORCE_FLYSKY_TUNING
|
||||||
@ -368,15 +377,14 @@ uint16_t ReadBUGS(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
A7105_Strobe(A7105_STANDBY);
|
A7105_Strobe(A7105_STANDBY);
|
||||||
|
BIND_DONE;
|
||||||
// set radio_id
|
// set radio_id
|
||||||
rxid = (packet[1] << 8) + packet[2];
|
rxid = (packet[1] << 8) + packet[2];
|
||||||
radio_id = BUGS_rxid_to_radioid(rxid);
|
radio_id = BUGS_rxid_to_radioid(rxid);
|
||||||
base_adr=BUGS_EEPROM_OFFSET+RX_num*4;
|
base_adr=BUGS_EEPROM_OFFSET+RX_num*4;
|
||||||
for(uint8_t i=0; i<4; i++)
|
for(uint8_t i=0; i<4; i++)
|
||||||
eeprom_write_byte((EE_ADDR)(base_adr+i),radio_id>>i); // Save radio_id in EEPROM
|
eeprom_write_byte((EE_ADDR)(base_adr+i),radio_id>>i); // Save radio_id in EEPROM
|
||||||
BUGS_set_radio_data(1);
|
BUGS_set_radio_data();
|
||||||
A7105_WriteID(radio_id);
|
|
||||||
BIND_DONE;
|
|
||||||
phase = BUGS_DATA_1;
|
phase = BUGS_DATA_1;
|
||||||
packet_count = 0;
|
packet_count = 0;
|
||||||
hopping_frequency_no = 0;
|
hopping_frequency_no = 0;
|
||||||
@ -437,16 +445,11 @@ uint16_t ReadBUGS(void)
|
|||||||
|
|
||||||
uint16_t initBUGS(void)
|
uint16_t initBUGS(void)
|
||||||
{
|
{
|
||||||
|
BUGS_set_radio_data();
|
||||||
if (IS_BIND_IN_PROGRESS)
|
if (IS_BIND_IN_PROGRESS)
|
||||||
{
|
|
||||||
BUGS_set_radio_data(0);
|
|
||||||
phase = BUGS_BIND_1;
|
phase = BUGS_BIND_1;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
BUGS_set_radio_data(1);
|
|
||||||
phase = BUGS_DATA_1;
|
phase = BUGS_DATA_1;
|
||||||
}
|
|
||||||
|
|
||||||
A7105_Init();
|
A7105_Init();
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 2
|
#define VERSION_MINOR 2
|
||||||
#define VERSION_REVISION 0
|
#define VERSION_REVISION 0
|
||||||
#define VERSION_PATCH_LEVEL 46
|
#define VERSION_PATCH_LEVEL 47
|
||||||
|
|
||||||
//******************
|
//******************
|
||||||
// Protocols
|
// Protocols
|
||||||
|
@ -110,7 +110,6 @@ uint16_t seed;
|
|||||||
uint16_t failsafe_count;
|
uint16_t failsafe_count;
|
||||||
uint16_t state;
|
uint16_t state;
|
||||||
uint8_t len;
|
uint8_t len;
|
||||||
uint32_t radio_id;
|
|
||||||
|
|
||||||
#if defined(FRSKYX_CC2500_INO) || defined(SFHSS_CC2500_INO)
|
#if defined(FRSKYX_CC2500_INO) || defined(SFHSS_CC2500_INO)
|
||||||
uint8_t calData[48];
|
uint8_t calData[48];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user