mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 17:58:13 +00:00
Remove Pelikan/SCX24 when MULTI_AIR
Save flash space
This commit is contained in:
parent
babfee0f9e
commit
09ee173e3b
@ -38,9 +38,11 @@ static void __attribute__((unused)) pelikan_build_packet()
|
|||||||
uint8_t sum;
|
uint8_t sum;
|
||||||
uint16_t channel;
|
uint16_t channel;
|
||||||
|
|
||||||
|
#ifndef MULTI_AIR
|
||||||
if(sub_protocol == PELIKAN_SCX24)
|
if(sub_protocol == PELIKAN_SCX24)
|
||||||
packet[0] = 0x11;
|
packet[0] = 0x11;
|
||||||
else //PELIKAN_PRO & PELIKAN_LITE
|
else //PELIKAN_PRO & PELIKAN_LITE
|
||||||
|
#endif
|
||||||
packet[0] = 0x15;
|
packet[0] = 0x15;
|
||||||
if(IS_BIND_IN_PROGRESS)
|
if(IS_BIND_IN_PROGRESS)
|
||||||
{
|
{
|
||||||
@ -49,6 +51,7 @@ static void __attribute__((unused)) pelikan_build_packet()
|
|||||||
packet[4] = rx_tx_addr[2];
|
packet[4] = rx_tx_addr[2];
|
||||||
packet[5] = rx_tx_addr[3];
|
packet[5] = rx_tx_addr[3];
|
||||||
|
|
||||||
|
#ifndef MULTI_AIR
|
||||||
if(sub_protocol == PELIKAN_SCX24)
|
if(sub_protocol == PELIKAN_SCX24)
|
||||||
{
|
{
|
||||||
packet[1] = 0x65; //??
|
packet[1] = 0x65; //??
|
||||||
@ -56,6 +59,7 @@ static void __attribute__((unused)) pelikan_build_packet()
|
|||||||
packet[7] = 0xAA; //??
|
packet[7] = 0xAA; //??
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
{//PELIKAN_PRO & PELIKAN_LITE
|
{//PELIKAN_PRO & PELIKAN_LITE
|
||||||
packet[1] = 0x04; //version??
|
packet[1] = 0x04; //version??
|
||||||
if(sub_protocol==PELIKAN_PRO)
|
if(sub_protocol==PELIKAN_PRO)
|
||||||
@ -71,6 +75,7 @@ static void __attribute__((unused)) pelikan_build_packet()
|
|||||||
{
|
{
|
||||||
//ID
|
//ID
|
||||||
packet[1] = rx_tx_addr[0];
|
packet[1] = rx_tx_addr[0];
|
||||||
|
#ifndef MULTI_AIR
|
||||||
if(sub_protocol == PELIKAN_SCX24)
|
if(sub_protocol == PELIKAN_SCX24)
|
||||||
{
|
{
|
||||||
//ID
|
//ID
|
||||||
@ -96,6 +101,7 @@ static void __attribute__((unused)) pelikan_build_packet()
|
|||||||
packet_length = 14;
|
packet_length = 14;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
{//PELIKAN_PRO & PELIKAN_LITE
|
{//PELIKAN_PRO & PELIKAN_LITE
|
||||||
//ID
|
//ID
|
||||||
packet[7] = rx_tx_addr[1];
|
packet[7] = rx_tx_addr[1];
|
||||||
@ -159,6 +165,13 @@ static void __attribute__((unused)) pelikan_build_packet()
|
|||||||
|
|
||||||
uint16_t PELIKAN_callback()
|
uint16_t PELIKAN_callback()
|
||||||
{
|
{
|
||||||
|
#ifdef MULTI_AIR
|
||||||
|
if(sub_protocol == PELIKAN_SCX24)
|
||||||
|
{
|
||||||
|
SUB_PROTO_INVALID;
|
||||||
|
return 10000;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if(phase==0)
|
if(phase==0)
|
||||||
{
|
{
|
||||||
#ifndef FORCE_PELIKAN_TUNING
|
#ifndef FORCE_PELIKAN_TUNING
|
||||||
@ -173,10 +186,12 @@ uint16_t PELIKAN_callback()
|
|||||||
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_LITE)
|
||||||
A7105_WriteReg(A7105_03_FIFOI,0x0D);
|
|
||||||
else//PELIKAN_LITE
|
|
||||||
A7105_WriteID(MProtocol_id);
|
A7105_WriteID(MProtocol_id);
|
||||||
|
#ifndef MULTI_AIR
|
||||||
|
else // PELIKAN_SCX24
|
||||||
|
A7105_WriteReg(A7105_03_FIFOI,0x0D);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef MULTI_SYNC
|
#ifdef MULTI_SYNC
|
||||||
@ -331,28 +346,6 @@ static uint8_t pelikan_add(uint8_t pfrq,uint8_t a, uint8_t limit)
|
|||||||
return nfrq;
|
return nfrq;
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint8_t PROGMEM scx_ch_map[4][PELIKAN_NUM_RF_CHAN] =
|
|
||||||
{
|
|
||||||
{0,1,2,26,27,28,23,24,25,20,21,22,17,18,19,14,15,16,11,12,13,8,9,10,5,6,7,4,3},
|
|
||||||
{0,1,2,28,25,26,27,24,21,22,23,20,17,18,19,16,13,14,15,12,9,10,11,8,5,6,7,3,4},
|
|
||||||
{0,1,27,28,25,26,23,24,21,22,19,20,17,18,15,16,13,14,11,12,9,10,7,8,5,6,3,4,2},
|
|
||||||
{0,1,28,1,4,2,23,26,22,24,27,25,17,20,16,18,21,19,11,14,10,12,15,13,27,8,6,7,9}
|
|
||||||
};
|
|
||||||
|
|
||||||
static void pelikan_shuffle(uint8_t j)
|
|
||||||
{
|
|
||||||
uint8_t temp[PELIKAN_NUM_RF_CHAN];
|
|
||||||
for (uint8_t i = 0; i < PELIKAN_NUM_RF_CHAN; i++)
|
|
||||||
{
|
|
||||||
temp[i] = hopping_frequency[scx_ch_map[j-1][i]];
|
|
||||||
}
|
|
||||||
|
|
||||||
for (uint8_t i = 0; i < PELIKAN_NUM_RF_CHAN; i++)
|
|
||||||
{
|
|
||||||
hopping_frequency[i] = temp[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __attribute__((unused)) pelikan_init_hop()
|
static void __attribute__((unused)) pelikan_init_hop()
|
||||||
{
|
{
|
||||||
#define PELIKAN_HOP_LIMIT 70
|
#define PELIKAN_HOP_LIMIT 70
|
||||||
@ -381,6 +374,26 @@ static void __attribute__((unused)) pelikan_init_hop()
|
|||||||
debugln("");
|
debugln("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef MULTI_AIR
|
||||||
|
|
||||||
|
const uint8_t PROGMEM scx_ch_map[4][PELIKAN_NUM_RF_CHAN] =
|
||||||
|
{
|
||||||
|
{0,1,2,26,27,28,23,24,25,20,21,22,17,18,19,14,15,16,11,12,13,8,9,10,5,6,7,4,3},
|
||||||
|
{0,1,2,28,25,26,27,24,21,22,23,20,17,18,19,16,13,14,15,12,9,10,11,8,5,6,7,3,4},
|
||||||
|
{0,1,27,28,25,26,23,24,21,22,19,20,17,18,15,16,13,14,11,12,9,10,7,8,5,6,3,4,2},
|
||||||
|
{0,1,28,1,4,2,23,26,22,24,27,25,17,20,16,18,21,19,11,14,10,12,15,13,27,8,6,7,9}
|
||||||
|
};
|
||||||
|
|
||||||
|
static void pelikan_shuffle(uint8_t j)
|
||||||
|
{
|
||||||
|
uint8_t temp[PELIKAN_NUM_RF_CHAN];
|
||||||
|
for (uint8_t i = 0; i < PELIKAN_NUM_RF_CHAN; i++)
|
||||||
|
temp[i] = hopping_frequency[pgm_read_byte_near(&scx_ch_map[j-1][i])];
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < PELIKAN_NUM_RF_CHAN; i++)
|
||||||
|
hopping_frequency[i] = temp[i];
|
||||||
|
}
|
||||||
|
|
||||||
static void __attribute__((unused)) pelikan_init_hop_scx()
|
static void __attribute__((unused)) pelikan_init_hop_scx()
|
||||||
{
|
{
|
||||||
rx_tx_addr[0] = 0x10;
|
rx_tx_addr[0] = 0x10;
|
||||||
@ -458,13 +471,24 @@ static void __attribute__((unused)) pelikan_init_hop_scx()
|
|||||||
hopping_frequency[PELIKAN_NUM_RF_CHAN - 1] = last_channel;
|
hopping_frequency[PELIKAN_NUM_RF_CHAN - 1] = last_channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUG_SERIAL
|
||||||
for (uint8_t i = 0; i < PELIKAN_NUM_RF_CHAN; i++)
|
for (uint8_t i = 0; i < PELIKAN_NUM_RF_CHAN; i++)
|
||||||
{
|
|
||||||
debug("%02X ", hopping_frequency[i]);
|
debug("%02X ", hopping_frequency[i]);
|
||||||
}
|
|
||||||
debugln("");
|
debugln("");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef PELIKAN_SCX24_FORCE_HOP
|
||||||
|
const uint8_t PROGMEM pelikan_scx24_hopp[][PELIKAN_NUM_RF_CHAN] = {
|
||||||
|
/*TX1*/ { 0x1E,0x32,0x46,0x5A,0x44,0x58,0x2E,0x42,0x56,0x2C,0x40,0x54,0x2A,0x3E,0x52,0x28,0x3C,0x50,0x26,0x3A,0x4E,0x24,0x38,0x4C,0x22,0x36,0x4A,0x20,0x1A },
|
||||||
|
/*TX2*/ { 0x2C,0x44,0x1E,0x52,0x56,0x22,0x3A,0x3E,0x34,0x4C,0x26,0x5A,0x50,0x2A,0x42,0x38,0x2E,0x46,0x20,0x54,0x4A,0x24,0x3C,0x32,0x28,0x40,0x58,0x1B,0x4E },
|
||||||
|
/*TX3*/ { 0x3C,0x4C,0x1E,0x4A,0x5A,0x2C,0x58,0x2A,0x3A,0x56,0x28,0x38,0x26,0x36,0x46,0x34,0x44,0x54,0x42,0x52,0x24,0x50,0x22,0x32,0x4E,0x20,0x40,0x3E,0x17 },
|
||||||
|
/*TX4*/ { 0x46,0x32,0x1E,0x58,0x44,0x5A,0x56,0x42,0x2E,0x54,0x40,0x2C,0x52,0x3E,0x2A,0x50,0x3C,0x28,0x4E,0x3A,0x26,0x4C,0x38,0x24,0x4A,0x36,0x22,0x20,0x1A }
|
||||||
|
};
|
||||||
|
#endif //PELIKAN_SCX24_FORCE_HOP
|
||||||
|
|
||||||
|
#endif //MULTI_AIR
|
||||||
|
|
||||||
#ifdef PELIKAN_FORCE_ID
|
#ifdef PELIKAN_FORCE_ID
|
||||||
const uint8_t PROGMEM pelikan_hopp[][PELIKAN_NUM_RF_CHAN] = {
|
const uint8_t PROGMEM pelikan_hopp[][PELIKAN_NUM_RF_CHAN] = {
|
||||||
{ 0x5A,0x46,0x32,0x6E,0x6C,0x58,0x44,0x42,0x40,0x6A,0x56,0x54,0x52,0x3E,0x68,0x66,0x64,0x50,0x3C,0x3A,0x38,0x62,0x4E,0x4C,0x5E,0x4A,0x36,0x5C,0x34 }
|
{ 0x5A,0x46,0x32,0x6E,0x6C,0x58,0x44,0x42,0x40,0x6A,0x56,0x54,0x52,0x3E,0x68,0x66,0x64,0x50,0x3C,0x3A,0x38,0x62,0x4E,0x4C,0x5E,0x4A,0x36,0x5C,0x34 }
|
||||||
@ -476,14 +500,6 @@ const uint8_t PROGMEM pelikan_lite_hopp[][PELIKAN_NUM_RF_CHAN] = {
|
|||||||
{ 0x46,0x2A,0x3E,0x5A,0x5C,0x24,0x4E,0x32,0x54,0x26,0x2C,0x34,0x56,0x1E,0x3A,0x3C,0x50,0x4A,0x2E,0x42,0x20,0x52,0x28,0x22,0x44,0x58,0x36,0x38,0x4C }
|
{ 0x46,0x2A,0x3E,0x5A,0x5C,0x24,0x4E,0x32,0x54,0x26,0x2C,0x34,0x56,0x1E,0x3A,0x3C,0x50,0x4A,0x2E,0x42,0x20,0x52,0x28,0x22,0x44,0x58,0x36,0x38,0x4C }
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
#ifdef PELIKAN_SCX24_FORCE_HOP
|
|
||||||
const uint8_t PROGMEM pelikan_scx24_hopp[][PELIKAN_NUM_RF_CHAN] = {
|
|
||||||
/*TX1*/ { 0x1E,0x32,0x46,0x5A,0x44,0x58,0x2E,0x42,0x56,0x2C,0x40,0x54,0x2A,0x3E,0x52,0x28,0x3C,0x50,0x26,0x3A,0x4E,0x24,0x38,0x4C,0x22,0x36,0x4A,0x20,0x1A },
|
|
||||||
/*TX2*/ { 0x2C,0x44,0x1E,0x52,0x56,0x22,0x3A,0x3E,0x34,0x4C,0x26,0x5A,0x50,0x2A,0x42,0x38,0x2E,0x46,0x20,0x54,0x4A,0x24,0x3C,0x32,0x28,0x40,0x58,0x1B,0x4E },
|
|
||||||
/*TX3*/ { 0x3C,0x4C,0x1E,0x4A,0x5A,0x2C,0x58,0x2A,0x3A,0x56,0x28,0x38,0x26,0x36,0x46,0x34,0x44,0x54,0x42,0x52,0x24,0x50,0x22,0x32,0x4E,0x20,0x40,0x3E,0x17 },
|
|
||||||
/*TX4*/ { 0x46,0x32,0x1E,0x58,0x44,0x5A,0x56,0x42,0x2E,0x54,0x40,0x2C,0x52,0x3E,0x2A,0x50,0x3C,0x28,0x4E,0x3A,0x26,0x4C,0x38,0x24,0x4A,0x36,0x22,0x20,0x1A }
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void PELIKAN_init()
|
void PELIKAN_init()
|
||||||
{
|
{
|
||||||
@ -530,6 +546,7 @@ void PELIKAN_init()
|
|||||||
A7105_WriteID(MProtocol_id);
|
A7105_WriteID(MProtocol_id);
|
||||||
packet_period = PELIKAN_LITE_PACKET_PERIOD;
|
packet_period = PELIKAN_LITE_PACKET_PERIOD;
|
||||||
}
|
}
|
||||||
|
#ifndef MULTI_AIR
|
||||||
else// if(sub_protocol==PELIKAN_SCX24)
|
else// if(sub_protocol==PELIKAN_SCX24)
|
||||||
{
|
{
|
||||||
pelikan_init_hop_scx();
|
pelikan_init_hop_scx();
|
||||||
@ -574,6 +591,7 @@ void PELIKAN_init()
|
|||||||
A7105_WriteReg(A7105_03_FIFOI,0x0D);
|
A7105_WriteReg(A7105_03_FIFOI,0x0D);
|
||||||
packet_period = PELIKAN_SCX24_PACKET_PERIOD;
|
packet_period = PELIKAN_SCX24_PACKET_PERIOD;
|
||||||
}
|
}
|
||||||
|
#endif //MULTI_AIR
|
||||||
}
|
}
|
||||||
|
|
||||||
hopping_frequency_no = PELIKAN_NUM_RF_CHAN;
|
hopping_frequency_no = PELIKAN_NUM_RF_CHAN;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user