fix switching, etc.

This commit is contained in:
MX
2026-02-12 20:24:32 +03:00
parent 343c2c2118
commit 9eb8e475cc

View File

@@ -109,7 +109,7 @@ void subghz_txrx_set_preset(
} }
uint8_t* uint8_t*
subghz_txrx_set_tx_power(uint8_t* preset_data, size_t preset_data_size, uint32_t tx_power) { subghz_txrx_set_tx_power(uint8_t* preset_data, size_t preset_data_size, uint8_t tx_power) {
#define PRESET_POWER_OFFSET_FM 8 #define PRESET_POWER_OFFSET_FM 8
#define PRESET_POWER_OFFSET_AM 7 #define PRESET_POWER_OFFSET_AM 7
#define TX_PATABLE_OFFSET_AM 8 #define TX_PATABLE_OFFSET_AM 8
@@ -137,20 +137,29 @@ uint8_t*
0x12, //-30dBm 0x12, //-30dBm
}; };
//Set the TX Power Here in the CC1101 register... //Grab the AM and FM byte now, so we can do proper checks.
if(tx_power) { uint8_t fm_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_FM];
//Grab the AM and FM byte now, so we can do proper checks. uint8_t am_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_AM];
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];
//If we have both bytes 1st bytes set or none, this isnt a preset we can deal with here. //Set the TX Power Here in the CC1101 register...
if(fm_byte & !am_byte) {
//Use FM Table //If we have both bytes 1st bytes set or none, this isnt a preset we can deal with here.
preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] = tx_pa_table[tx_power]; if(fm_byte && !am_byte) {
} else if(am_byte & !fm_byte) { //Use FM Table
//Use AM Table if(tx_power) {
preset_data[preset_data_size - PRESET_POWER_OFFSET_AM] = preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] =
tx_pa_table[TX_PATABLE_OFFSET_AM + tx_power]; 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
} }
} }