Improve power settings
This commit is contained in:
200
radio.c
200
radio.c
@@ -140,7 +140,7 @@ void RADIO_InitInfo(VFO_Info_t *pInfo, const uint8_t ChannelSave, const uint32_t
|
||||
pInfo->StepFrequency = gStepFrequencyTable[pInfo->STEP_SETTING];
|
||||
pInfo->CHANNEL_SAVE = ChannelSave;
|
||||
pInfo->FrequencyReverse = false;
|
||||
pInfo->OUTPUT_POWER = OUTPUT_POWER_LOW;
|
||||
pInfo->OUTPUT_POWER = OUTPUT_POWER_LOW1;
|
||||
pInfo->freq_config_RX.Frequency = Frequency;
|
||||
pInfo->freq_config_TX.Frequency = Frequency;
|
||||
pInfo->pRX = &pInfo->freq_config_RX;
|
||||
@@ -329,7 +329,7 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure
|
||||
{
|
||||
pVfo->FrequencyReverse = false;
|
||||
pVfo->CHANNEL_BANDWIDTH = BK4819_FILTER_BW_WIDE;
|
||||
pVfo->OUTPUT_POWER = OUTPUT_POWER_LOW;
|
||||
pVfo->OUTPUT_POWER = OUTPUT_POWER_LOW1;
|
||||
pVfo->BUSY_CHANNEL_LOCK = false;
|
||||
}
|
||||
else
|
||||
@@ -337,8 +337,8 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure
|
||||
const uint8_t d4 = data[4];
|
||||
pVfo->FrequencyReverse = !!((d4 >> 0) & 1u);
|
||||
pVfo->CHANNEL_BANDWIDTH = !!((d4 >> 1) & 1u);
|
||||
pVfo->OUTPUT_POWER = ((d4 >> 2) & 3u);
|
||||
pVfo->BUSY_CHANNEL_LOCK = !!((d4 >> 4) & 1u);
|
||||
pVfo->OUTPUT_POWER = ((d4 >> 2) & 7u);
|
||||
pVfo->BUSY_CHANNEL_LOCK = !!((d4 >> 5) & 1u);
|
||||
}
|
||||
|
||||
if (data[5] == 0xFF)
|
||||
@@ -508,114 +508,112 @@ void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo)
|
||||
// 1F30 32 32 32 64 64 64 8c 8c 8c ff ff ff ff ff ff ff 470 MHz
|
||||
|
||||
uint8_t Txp[3];
|
||||
EEPROM_ReadBuffer(0x1ED0 + (Band * 16) + (pInfo->OUTPUT_POWER * 3), Txp, 3);
|
||||
uint8_t Op = 0;
|
||||
|
||||
if (pInfo->OUTPUT_POWER == OUTPUT_POWER_MID)
|
||||
Op = 1;
|
||||
else if(pInfo->OUTPUT_POWER == OUTPUT_POWER_HIGH)
|
||||
Op = 2;
|
||||
|
||||
EEPROM_ReadBuffer(0x1ED0 + (Band * 16) + (Op * 3), Txp, 3);
|
||||
|
||||
#ifdef ENABLE_FEAT_F4HWN
|
||||
#ifdef ENABLE_FEAT_F4HWN_FIXED_PWR
|
||||
// make low and mid even lower
|
||||
// and fix values
|
||||
// because of toxic fucking closed firmwares
|
||||
// make low and mid even lower
|
||||
// and use calibration values
|
||||
// be aware with toxic fucking closed firmwares
|
||||
|
||||
uint8_t shift[] = {0, 0, 0, 0, 0, 0, 0};
|
||||
uint8_t shift[] = {0, 0, 0, 0, 0};
|
||||
uint8_t currentPower = pInfo->OUTPUT_POWER;
|
||||
|
||||
if(Band == 5)
|
||||
if(currentPower == OUTPUT_POWER_USER)
|
||||
{
|
||||
currentPower = gSetting_set_pwr;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentPower--;
|
||||
}
|
||||
|
||||
/*
|
||||
if(Band == 5) // UHF
|
||||
{
|
||||
shift[0] = 0;
|
||||
shift[1] = 0;
|
||||
shift[2] = 0;
|
||||
shift[3] = 0;
|
||||
shift[4] = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
for(uint8_t p = 0; p < 3; p++)
|
||||
{
|
||||
switch (currentPower)
|
||||
{
|
||||
shift[0] = 2;
|
||||
shift[1] = 1;
|
||||
shift[2] = 2;
|
||||
shift[3] = 2;
|
||||
shift[4] = 2;
|
||||
shift[5] = 2;
|
||||
shift[6] = 2;
|
||||
case 0:
|
||||
Txp[p] = (Txp[p] * 4) / 25 + shift[pInfo->OUTPUT_POWER];
|
||||
break;
|
||||
case 1:
|
||||
Txp[p] = (Txp[p] * 4) / 19 + shift[pInfo->OUTPUT_POWER];
|
||||
break;
|
||||
case 2:
|
||||
Txp[p] = (Txp[p] * 4) / 13 + shift[pInfo->OUTPUT_POWER];
|
||||
break;
|
||||
case 3:
|
||||
Txp[p] = (Txp[p] * 4) / 10 + shift[pInfo->OUTPUT_POWER];
|
||||
break;
|
||||
case 4:
|
||||
Txp[p] = (Txp[p] * 4) / 7 + shift[pInfo->OUTPUT_POWER];
|
||||
break;
|
||||
case 5:
|
||||
Txp[p] = (Txp[p] * 3) / 4;
|
||||
break;
|
||||
case 6:
|
||||
Txp[p] = Txp[p] + 30;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*
|
||||
// make low and mid even lower
|
||||
// and use calibration values
|
||||
// be aware with toxic fucking closed firmwares
|
||||
|
||||
if (pInfo->OUTPUT_POWER == OUTPUT_POWER_LOW) {
|
||||
for(uint8_t p = 0; p < 3; p++ )
|
||||
{
|
||||
switch (gSetting_set_low) {
|
||||
case 0:
|
||||
Txp[p] = 16 - shift[gSetting_set_low];
|
||||
break;
|
||||
case 1:
|
||||
Txp[p] = 21 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 2:
|
||||
Txp[p] = 29 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 3:
|
||||
Txp[p] = 37 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 4:
|
||||
Txp[p] = 50 + shift[gSetting_set_low];
|
||||
break;
|
||||
}
|
||||
uint8_t shift[] = {0, 0, 0, 0, 0};
|
||||
|
||||
}
|
||||
}
|
||||
else if (pInfo->OUTPUT_POWER == OUTPUT_POWER_MID){
|
||||
Txp[0] = 77 + shift[5];
|
||||
Txp[1] = 77 + shift[5];
|
||||
Txp[2] = 77 + shift[5];
|
||||
}
|
||||
// increase high
|
||||
else if (pInfo->OUTPUT_POWER == OUTPUT_POWER_HIGH){
|
||||
Txp[0] = 165 + shift[6];
|
||||
Txp[1] = 165 + shift[6];
|
||||
Txp[2] = 165 + shift[6];
|
||||
}
|
||||
#else
|
||||
// make low and mid even lower
|
||||
// and use calibration values
|
||||
// be aware with toxic fucking closed firmwares
|
||||
|
||||
uint8_t shift[] = {0, 0, 0, 0, 0};
|
||||
|
||||
/*
|
||||
if(Band == 5) // UHF
|
||||
if (pInfo->OUTPUT_POWER == OUTPUT_POWER_LOW) {
|
||||
for(uint8_t p = 0; p < 3; p++ )
|
||||
{
|
||||
shift[0] = 0;
|
||||
shift[1] = 0;
|
||||
shift[2] = 0;
|
||||
shift[3] = 0;
|
||||
shift[4] = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
if (pInfo->OUTPUT_POWER == OUTPUT_POWER_LOW) {
|
||||
for(uint8_t p = 0; p < 3; p++ )
|
||||
{
|
||||
switch (gSetting_set_low) {
|
||||
case 0:
|
||||
Txp[p] = (Txp[p] * 4) / 25 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 1:
|
||||
Txp[p] = (Txp[p] * 4) / 19 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 2:
|
||||
Txp[p] = (Txp[p] * 4) / 13 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 3:
|
||||
Txp[p] = (Txp[p] * 4) / 10 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 4:
|
||||
Txp[p] = (Txp[p] * 4) / 7 + shift[gSetting_set_low];
|
||||
break;
|
||||
}
|
||||
|
||||
switch (gSetting_set_low) {
|
||||
case 0:
|
||||
Txp[p] = (Txp[p] * 4) / 25 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 1:
|
||||
Txp[p] = (Txp[p] * 4) / 19 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 2:
|
||||
Txp[p] = (Txp[p] * 4) / 13 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 3:
|
||||
Txp[p] = (Txp[p] * 4) / 10 + shift[gSetting_set_low];
|
||||
break;
|
||||
case 4:
|
||||
Txp[p] = (Txp[p] * 4) / 7 + shift[gSetting_set_low];
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else if (pInfo->OUTPUT_POWER == OUTPUT_POWER_MID){
|
||||
Txp[0] = (Txp[0] * 3) / 4;
|
||||
Txp[1] = (Txp[1] * 3) / 4;
|
||||
Txp[2] = (Txp[2] * 3) / 4;
|
||||
}
|
||||
// increase high
|
||||
else if (pInfo->OUTPUT_POWER == OUTPUT_POWER_HIGH){
|
||||
Txp[0] = Txp[0] + 30;
|
||||
Txp[1] = Txp[1] + 30;
|
||||
Txp[2] = Txp[2] + 30;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (pInfo->OUTPUT_POWER == OUTPUT_POWER_MID){
|
||||
Txp[0] = (Txp[0] * 3) / 4;
|
||||
Txp[1] = (Txp[1] * 3) / 4;
|
||||
Txp[2] = (Txp[2] * 3) / 4;
|
||||
}
|
||||
// increase high
|
||||
else if (pInfo->OUTPUT_POWER == OUTPUT_POWER_HIGH){
|
||||
Txp[0] = Txp[0] + 30;
|
||||
Txp[1] = Txp[1] + 30;
|
||||
Txp[2] = Txp[2] + 30;
|
||||
}
|
||||
*/
|
||||
#else
|
||||
#ifdef ENABLE_REDUCE_LOW_MID_TX_POWER
|
||||
// make low and mid even lower
|
||||
|
Reference in New Issue
Block a user