mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-23 05:24:46 -07:00
Merge branch 'leeroy_dev' into dev [ci skip]
This commit is contained in:
@@ -110,25 +110,58 @@ void subghz_txrx_set_preset(
|
|||||||
|
|
||||||
uint8_t*
|
uint8_t*
|
||||||
subghz_txrx_set_tx_power(uint8_t* preset_data, size_t preset_data_size, uint8_t tx_power) {
|
subghz_txrx_set_tx_power(uint8_t* preset_data, size_t preset_data_size, uint8_t tx_power) {
|
||||||
#define TX_POWER_OFFSET 7
|
#define PRESET_POWER_OFFSET_FM 8
|
||||||
#define TX_PRESET_POWER_COUNT 11
|
#define PRESET_POWER_OFFSET_AM 7
|
||||||
const uint8_t tx_power_value[TX_PRESET_POWER_COUNT] = {
|
#define TX_PATABLE_OFFSET_AM 8
|
||||||
|
#define TX_PATABLE_COUNT 17
|
||||||
|
|
||||||
|
//I had to skip the +10dBM and -6dBm Values, use only ones AM/FM have in common.
|
||||||
|
//Highest Value is 12dBm for AM, 10 for FM. So Menu needs to reflect that.
|
||||||
|
const uint8_t tx_pa_table[TX_PATABLE_COUNT] = {
|
||||||
0,
|
0,
|
||||||
0xC0,
|
0xC0, //12dBm
|
||||||
0xC5,
|
0xCD, //7dBm
|
||||||
0xCD,
|
0x86, //5dBm
|
||||||
0x86,
|
0x50, //0dBm
|
||||||
0x50,
|
0x26, // -10dBm
|
||||||
0x37,
|
0x1D, // -15dBm
|
||||||
0x26,
|
0x17, //-20dBm
|
||||||
0x1D,
|
0x03, //-30dBm
|
||||||
0x17,
|
0xC0, // 10dBm
|
||||||
0x03,
|
0xC8, //7dBm
|
||||||
|
0x84, //5dBm
|
||||||
|
0x60, //0dBm
|
||||||
|
0x34, //-10dBm
|
||||||
|
0x1D, //-15dBm
|
||||||
|
0x0E, // -20dBm
|
||||||
|
0x12, //-30dBm
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Grab the AM and FM byte now, so we can do proper checks.
|
||||||
|
uint8_t fm_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_FM];
|
||||||
|
uint8_t am_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_AM];
|
||||||
|
|
||||||
//Set the TX Power Here in the CC1101 register...
|
//Set the TX Power Here in the CC1101 register...
|
||||||
if(tx_power)
|
|
||||||
preset_data[preset_data_size - TX_POWER_OFFSET] = (uint8_t)tx_power_value[tx_power];
|
//If we have both bytes 1st bytes set or none, this isnt a preset we can deal with here.
|
||||||
|
if(fm_byte && !am_byte) {
|
||||||
|
//Use FM Table
|
||||||
|
if(tx_power) {
|
||||||
|
preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] =
|
||||||
|
tx_pa_table[TX_PATABLE_OFFSET_AM + tx_power];
|
||||||
|
} else {
|
||||||
|
preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] =
|
||||||
|
tx_pa_table[1]; //Max Power 0xC0 10dBm
|
||||||
|
}
|
||||||
|
} else if(am_byte && !fm_byte) {
|
||||||
|
//Use AM Table
|
||||||
|
if(tx_power) {
|
||||||
|
preset_data[preset_data_size - PRESET_POWER_OFFSET_AM] = tx_pa_table[tx_power];
|
||||||
|
} else {
|
||||||
|
preset_data[preset_data_size - PRESET_POWER_OFFSET_AM] =
|
||||||
|
tx_pa_table[1]; //Max Power 0xC0 12dBm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Pass back the preset_so we can call one liners.
|
//Pass back the preset_so we can call one liners.
|
||||||
return preset_data;
|
return preset_data;
|
||||||
|
|||||||
@@ -67,15 +67,13 @@ const int32_t debug_counter_val[DEBUG_COUNTER_COUNT] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//TX Power
|
//TX Power
|
||||||
#define TX_POWER_COUNT 11
|
#define TX_POWER_COUNT 9
|
||||||
const char* const tx_power_text[TX_POWER_COUNT] = {
|
const char* const tx_power_text[TX_POWER_COUNT] = {
|
||||||
"Preset",
|
"Preset",
|
||||||
"12dBm",
|
"10dBm +",
|
||||||
"10dBm",
|
|
||||||
"7dBm",
|
"7dBm",
|
||||||
"5dBm",
|
"5dBm",
|
||||||
"0dBm",
|
"0dBm",
|
||||||
"-6dBm",
|
|
||||||
"-10dBm",
|
"-10dBm",
|
||||||
"-15dBm",
|
"-15dBm",
|
||||||
"-20dBm",
|
"-20dBm",
|
||||||
|
|||||||
Reference in New Issue
Block a user