Skip to content

Commit 9eb8e47

Browse files
committed
fix switching, etc.
1 parent 343c2c2 commit 9eb8e47

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

applications/main/subghz/helpers/subghz_txrx.c

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ void subghz_txrx_set_preset(
109109
}
110110

111111
uint8_t*
112-
subghz_txrx_set_tx_power(uint8_t* preset_data, size_t preset_data_size, uint32_t tx_power) {
112+
subghz_txrx_set_tx_power(uint8_t* preset_data, size_t preset_data_size, uint8_t tx_power) {
113113
#define PRESET_POWER_OFFSET_FM 8
114114
#define PRESET_POWER_OFFSET_AM 7
115115
#define TX_PATABLE_OFFSET_AM 8
@@ -137,20 +137,29 @@ uint8_t*
137137
0x12, //-30dBm
138138
};
139139

140+
//Grab the AM and FM byte now, so we can do proper checks.
141+
uint8_t fm_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_FM];
142+
uint8_t am_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_AM];
143+
140144
//Set the TX Power Here in the CC1101 register...
141-
if(tx_power) {
142-
//Grab the AM and FM byte now, so we can do proper checks.
143-
uint8_t fm_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_FM];
144-
uint8_t am_byte = preset_data[preset_data_size - PRESET_POWER_OFFSET_AM];
145-
146-
//If we have both bytes 1st bytes set or none, this isnt a preset we can deal with here.
147-
if(fm_byte & !am_byte) {
148-
//Use FM Table
149-
preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] = tx_pa_table[tx_power];
150-
} else if(am_byte & !fm_byte) {
151-
//Use AM Table
152-
preset_data[preset_data_size - PRESET_POWER_OFFSET_AM] =
145+
146+
//If we have both bytes 1st bytes set or none, this isnt a preset we can deal with here.
147+
if(fm_byte && !am_byte) {
148+
//Use FM Table
149+
if(tx_power) {
150+
preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] =
153151
tx_pa_table[TX_PATABLE_OFFSET_AM + tx_power];
152+
} else {
153+
preset_data[preset_data_size - PRESET_POWER_OFFSET_FM] =
154+
tx_pa_table[1]; //Max Power 0xC0 10dBm
155+
}
156+
} else if(am_byte && !fm_byte) {
157+
//Use AM Table
158+
if(tx_power) {
159+
preset_data[preset_data_size - PRESET_POWER_OFFSET_AM] = tx_pa_table[tx_power];
160+
} else {
161+
preset_data[preset_data_size - PRESET_POWER_OFFSET_AM] =
162+
tx_pa_table[1]; //Max Power 0xC0 12dBm
154163
}
155164
}
156165

0 commit comments

Comments
 (0)