Pelikan/SCX24: fix?

This commit is contained in:
Pascal Langer 2021-04-17 22:55:43 +02:00
parent 34f16b0b66
commit 2a383c7285
2 changed files with 46 additions and 59 deletions

View File

@ -19,7 +19,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 3 #define VERSION_MINOR 3
#define VERSION_REVISION 2 #define VERSION_REVISION 2
#define VERSION_PATCH_LEVEL 75 #define VERSION_PATCH_LEVEL 76
#define MODE_SERIAL 0 #define MODE_SERIAL 0

View File

@ -50,9 +50,9 @@ static void __attribute__((unused)) pelikan_build_packet()
if(sub_protocol == PELIKAN_SCX24) if(sub_protocol == PELIKAN_SCX24)
{ {
packet[1] = 0x65; packet[1] = 0x65; //??
packet[6] = 0x55; packet[6] = 0x55; //??
packet[7] = 0xAA; packet[7] = 0xAA; //??
} }
else else
{//PELIKAN_PRO & PELIKAN_LITE {//PELIKAN_PRO & PELIKAN_LITE
@ -171,7 +171,7 @@ uint16_t PELIKAN_callback()
BIND_DONE; BIND_DONE;
A7105_Strobe(A7105_STANDBY); A7105_Strobe(A7105_STANDBY);
if(sub_protocol==PELIKAN_PRO) if(sub_protocol==PELIKAN_PRO)
A7105_WriteReg(A7105_03_FIFOI,0x28); A7105_WriteReg(A7105_03_FIFOI,0x28); //????
else if(sub_protocol==PELIKAN_SCX24) else if(sub_protocol==PELIKAN_SCX24)
A7105_WriteReg(A7105_03_FIFOI,0x0D); A7105_WriteReg(A7105_03_FIFOI,0x0D);
else//PELIKAN_LITE else//PELIKAN_LITE
@ -301,12 +301,11 @@ void PELIKAN_init()
if(IS_BIND_IN_PROGRESS || sub_protocol==PELIKAN_LITE) if(IS_BIND_IN_PROGRESS || sub_protocol==PELIKAN_LITE)
A7105_WriteReg(A7105_03_FIFOI,0x10); A7105_WriteReg(A7105_03_FIFOI,0x10);
pelikan_init_hop();
//ID from dump
#if defined(PELIKAN_FORCE_ID)
if(sub_protocol==PELIKAN_PRO) if(sub_protocol==PELIKAN_PRO)
{ {
pelikan_init_hop();
//ID from dump
#if defined(PELIKAN_FORCE_ID)
rx_tx_addr[0]=0x0D; // hopping freq rx_tx_addr[0]=0x0D; // hopping freq
rx_tx_addr[1]=0xF4; // hopping freq rx_tx_addr[1]=0xF4; // hopping freq
rx_tx_addr[2]=0x50; // ID rx_tx_addr[2]=0x50; // ID
@ -314,10 +313,10 @@ void PELIKAN_init()
// Fill frequency table // Fill frequency table
for(uint8_t i=0;i<PELIKAN_NUM_RF_CHAN;i++) for(uint8_t i=0;i<PELIKAN_NUM_RF_CHAN;i++)
hopping_frequency[i]=pgm_read_byte_near(&pelikan_hopp[0][i]); hopping_frequency[i]=pgm_read_byte_near(&pelikan_hopp[0][i]);
}
#endif #endif
#if defined(PELIKAN_LITE_FORCE_ID) || defined(PELIKAN_LITE_FORCE_HOP) packet_period = PELIKAN_PACKET_PERIOD;
if(sub_protocol==PELIKAN_LITE) }
else if(sub_protocol==PELIKAN_LITE)
{ {
#if defined(PELIKAN_LITE_FORCE_ID) #if defined(PELIKAN_LITE_FORCE_ID)
// ID // ID
@ -331,10 +330,12 @@ void PELIKAN_init()
for(uint8_t i=0;i<PELIKAN_NUM_RF_CHAN;i++) for(uint8_t i=0;i<PELIKAN_NUM_RF_CHAN;i++)
hopping_frequency[i]=pgm_read_byte_near(&pelikan_lite_hopp[0][i]); hopping_frequency[i]=pgm_read_byte_near(&pelikan_lite_hopp[0][i]);
#endif #endif
MProtocol_id = ((uint32_t)rx_tx_addr[0]<<24)|((uint32_t)rx_tx_addr[1]<<16)|((uint32_t)rx_tx_addr[2]<<8)|(rx_tx_addr[3]);
if(IS_BIND_DONE)
A7105_WriteID(MProtocol_id);
packet_period = PELIKAN_LITE_PACKET_PERIOD;
} }
#endif else if(sub_protocol==PELIKAN_SCX24)
#if defined(PELIKAN_SCX24_FORCE_ID) || defined(PELIKAN_SCX24_FORCE_HOP)
if(sub_protocol==PELIKAN_SCX24)
{ {
#if defined(PELIKAN_SCX24_FORCE_ID) #if defined(PELIKAN_SCX24_FORCE_ID)
// ID // ID
@ -348,25 +349,11 @@ void PELIKAN_init()
for(uint8_t i=0;i<PELIKAN_NUM_RF_CHAN;i++) for(uint8_t i=0;i<PELIKAN_NUM_RF_CHAN;i++)
hopping_frequency[i]=pgm_read_byte_near(&pelikan_scx24_hopp[0][i]); hopping_frequency[i]=pgm_read_byte_near(&pelikan_scx24_hopp[0][i]);
#endif #endif
} A7105_WriteReg(A7105_0E_DATA_RATE,0x03);
#endif
MProtocol_id = ((uint32_t)rx_tx_addr[0]<<24)|((uint32_t)rx_tx_addr[1]<<16)|((uint32_t)rx_tx_addr[2]<<8)|(rx_tx_addr[3]);
if(sub_protocol==PELIKAN_LITE)
{
if(IS_BIND_DONE)
A7105_WriteID(MProtocol_id);
packet_period = PELIKAN_LITE_PACKET_PERIOD;
}
else if(sub_protocol==PELIKAN_SCX24)
{
if(IS_BIND_DONE) if(IS_BIND_DONE)
A7105_WriteReg(A7105_03_FIFOI,0x0D); A7105_WriteReg(A7105_03_FIFOI,0x0D);
packet_period = PELIKAN_SCX24_PACKET_PERIOD; packet_period = PELIKAN_SCX24_PACKET_PERIOD;
} }
else//PELIKAN_PRO
packet_period = PELIKAN_PACKET_PERIOD;
hopping_frequency_no = PELIKAN_NUM_RF_CHAN; hopping_frequency_no = PELIKAN_NUM_RF_CHAN;
packet_count = 5; packet_count = 5;