mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-29 23:01:26 +03:00
CTCSS tail define renamed
This commit is contained in:
parent
7cdb0c9a33
commit
84087c3d13
6
Makefile
6
Makefile
@ -13,7 +13,7 @@ ENABLE_KEEP_MEM_NAME := 1
|
|||||||
ENABLE_CHAN_NAME_FREQ := 1
|
ENABLE_CHAN_NAME_FREQ := 1
|
||||||
ENABLE_WIDE_RX := 1
|
ENABLE_WIDE_RX := 1
|
||||||
ENABLE_TX_WHEN_AM := 0
|
ENABLE_TX_WHEN_AM := 0
|
||||||
ENABLE_TAIL_CTCSS_PHASE_SHIFT := 1
|
ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1
|
||||||
#ENABLE_SINGLE_VFO_CHAN := 1
|
#ENABLE_SINGLE_VFO_CHAN := 1
|
||||||
#ENABLE_BAND_SCOPE := 1
|
#ENABLE_BAND_SCOPE := 1
|
||||||
|
|
||||||
@ -168,8 +168,8 @@ endif
|
|||||||
ifeq ($(ENABLE_TX_WHEN_AM),1)
|
ifeq ($(ENABLE_TX_WHEN_AM),1)
|
||||||
CFLAGS += -DENABLE_TX_WHEN_AM
|
CFLAGS += -DENABLE_TX_WHEN_AM
|
||||||
endif
|
endif
|
||||||
ifeq ($(ENABLE_TAIL_CTCSS_PHASE_SHIFT),1)
|
ifeq ($(ENABLE_CTCSS_TAIL_PHASE_SHIFT),1)
|
||||||
CFLAGS += -DENABLE_TAIL_CTCSS_PHASE_SHIFT
|
CFLAGS += -DENABLE_CTCSS_TAIL_PHASE_SHIFT
|
||||||
endif
|
endif
|
||||||
ifeq ($(ENABLE_SINGLE_VFO_CHAN),1)
|
ifeq ($(ENABLE_SINGLE_VFO_CHAN),1)
|
||||||
CFLAGS += -DENABLE_SINGLE_VFO_CHAN
|
CFLAGS += -DENABLE_SINGLE_VFO_CHAN
|
||||||
|
16
README.md
16
README.md
@ -12,9 +12,9 @@ This version you can customize at compile time by making various changes to the
|
|||||||
You can edit those changes by (currently) editing the MakeFile, look for these lines at the top of the file ..
|
You can edit those changes by (currently) editing the MakeFile, look for these lines at the top of the file ..
|
||||||
|
|
||||||
* ENABLE_AIRCOPY := 0
|
* ENABLE_AIRCOPY := 0
|
||||||
* ENABLE_FMRADIO := 0 FM band 2 radio
|
* ENABLE_FMRADIO := 0 FM band 2 RX
|
||||||
* ENABLE_OVERLAY := 1
|
* ENABLE_OVERLAY := 1
|
||||||
* ENABLE_UART := 1 without this you can't configure the radio with your PC
|
* ENABLE_UART := 1 without this you ENABLE_TAIL_CTCSS_PHASE_SHIFTcan't configure the radio with your PC
|
||||||
* ENABLE_NOAA := 0 NOAA channels
|
* ENABLE_NOAA := 0 NOAA channels
|
||||||
* ENABLE_VOICE := 0 strange voices
|
* ENABLE_VOICE := 0 strange voices
|
||||||
* ENABLE_ALARM := 0 TX alarms
|
* ENABLE_ALARM := 0 TX alarms
|
||||||
@ -23,22 +23,20 @@ You can edit those changes by (currently) editing the MakeFile, look for these l
|
|||||||
* ENABLE_CHAN_NAME_FREQ := 1 show the channel frequency below the channel name/number
|
* ENABLE_CHAN_NAME_FREQ := 1 show the channel frequency below the channel name/number
|
||||||
* ENABLE_WIDE_RX := 1 enable the RX in the full 18MHz to 1300MHz (though frontend is not tuned for full range)
|
* ENABLE_WIDE_RX := 1 enable the RX in the full 18MHz to 1300MHz (though frontend is not tuned for full range)
|
||||||
* ENABLE_TX_WHEN_AM := 0 allow TX when RX set to AM
|
* ENABLE_TX_WHEN_AM := 0 allow TX when RX set to AM
|
||||||
* ENABLE_TAIL_CTCSS_PHASE_SHIFT := 1 use CTCSS tail phase shift rather than QS's 55Hz tone method
|
* ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 use CTCSS tail phase shift rather than QS's 55Hz tone method
|
||||||
* #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented
|
* #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented
|
||||||
* #ENABLE_BAND_SCOPE := 1 not yet implemented
|
* #ENABLE_BAND_SCOPE := 1 not yet implemented
|
||||||
|
|
||||||
To enable the custom option, set the above option to '1'
|
To enable the custom option, set the above option to '1'
|
||||||
|
|
||||||
# Other changes made
|
# Some other changes made
|
||||||
|
|
||||||
* Various bugs fixed that the QS firmware had (TX tail, Menu confimation etc)
|
* Various bugs fixed that the QS firmware had
|
||||||
* Added new bugs
|
* Added new bugs
|
||||||
* Battery voltage boot screen now includes percentage
|
|
||||||
* Slightly less intense menu style
|
|
||||||
* AM RX now allowed everywhere, although the radio really doesn't do AM, the adverts are a con !
|
|
||||||
* Finer RSSI bar steps
|
* Finer RSSI bar steps
|
||||||
* Nicer/cleaner big numeric font than original QS big numeric font
|
* Nicer/cleaner big numeric font than original QS big numeric font
|
||||||
* Various menu re-wordings - to try and reduce 'WTH does that mean ?'
|
* Various menu re-wordings - trying to reduce 'WTH does that mean ?'
|
||||||
|
* + others
|
||||||
|
|
||||||
# Compiler
|
# Compiler
|
||||||
|
|
||||||
|
90
dcs.c
90
dcs.c
@ -16,27 +16,17 @@
|
|||||||
|
|
||||||
#include "dcs.h"
|
#include "dcs.h"
|
||||||
|
|
||||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
|
#ifndef ARRAY_SIZE
|
||||||
|
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
// CTCSS Hz * 10
|
// CTCSS Hz * 10
|
||||||
const uint16_t CTCSS_Options[50] = {
|
const uint16_t CTCSS_Options[50] = {
|
||||||
#if 0
|
670, 693, 719, 744, 770, 797, 825, 854, 885, 915,
|
||||||
670, 693, 719, 0x02E8, 0x0302, 0x031D, 0x0339, 0x0356,
|
948, 974, 1000, 1035, 1072, 1109, 1148, 1188, 1230, 1273,
|
||||||
0x0375, 0x0393, 0x03B4, 0x03CE, 0x03E8, 0x040B, 0x0430, 0x0455,
|
1318, 1365, 1413, 1462, 1514, 1567, 1598, 1622, 1655, 1679,
|
||||||
0x047C, 0x04A4, 0x04CE, 0x04F9, 0x0526, 0x0555, 0x0585, 0x05B6,
|
1713, 1738, 1773, 1799, 1835, 1862, 1899, 1928, 1966, 1995,
|
||||||
0x05EA, 0x061F, 0x063E, 0x0656, 0x0677, 0x068F, 0x06B1, 0x06CA,
|
2035, 2065, 2107, 2181, 2257, 2291, 2336, 2418, 2503, 2541
|
||||||
0x06ED, 0x0707, 0x072B, 0x0746, 0x076B, 0x0788, 0x07AE, 0x07CB,
|
|
||||||
0x07F3, 0x0811, 0x083B, 0x0885, 0x08D1, 0x08F3, 0x0920, 0x0972,
|
|
||||||
0x09C7, 0x09ED
|
|
||||||
#else
|
|
||||||
670, 693, 719, 744, 770, 797, 825, 854,
|
|
||||||
885, 915, 948, 974, 1000, 1035, 1072, 1109,
|
|
||||||
1148, 1188, 1230, 1273, 1318, 1365, 1413, 1462,
|
|
||||||
1514, 1567, 1598, 1622, 1655, 1679, 1713, 1738,
|
|
||||||
1773, 1799, 1835, 1862, 1899, 1928, 1966, 1995,
|
|
||||||
2035, 2065, 2107, 2181, 2257, 2291, 2336, 2418,
|
|
||||||
2503, 2541
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t DCS_Options[104] = {
|
const uint16_t DCS_Options[104] = {
|
||||||
@ -57,53 +47,44 @@ const uint16_t DCS_Options[104] = {
|
|||||||
|
|
||||||
static uint32_t DCS_CalculateGolay(uint32_t CodeWord)
|
static uint32_t DCS_CalculateGolay(uint32_t CodeWord)
|
||||||
{
|
{
|
||||||
uint32_t Word;
|
unsigned int i;
|
||||||
uint8_t i;
|
uint32_t Word = CodeWord;
|
||||||
|
for (i = 0; i < 12; i++)
|
||||||
Word = CodeWord;
|
{
|
||||||
for (i = 0; i < 12; i++) {
|
|
||||||
Word <<= 1;
|
Word <<= 1;
|
||||||
if (Word & 0x1000) {
|
if (Word & 0x1000)
|
||||||
Word ^= 0x08EA;
|
Word ^= 0x08EA;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return CodeWord | ((Word & 0x0FFE) << 11);
|
return CodeWord | ((Word & 0x0FFE) << 11);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t DCS_GetGolayCodeWord(DCS_CodeType_t CodeType, uint8_t Option)
|
uint32_t DCS_GetGolayCodeWord(DCS_CodeType_t CodeType, uint8_t Option)
|
||||||
{
|
{
|
||||||
uint32_t Code;
|
uint32_t Code = DCS_CalculateGolay(DCS_Options[Option] + 0x800U);
|
||||||
|
if (CodeType == CODE_TYPE_REVERSE_DIGITAL)
|
||||||
Code = DCS_CalculateGolay(DCS_Options[Option] + 0x800U);
|
|
||||||
if (CodeType == CODE_TYPE_REVERSE_DIGITAL) {
|
|
||||||
Code ^= 0x7FFFFF;
|
Code ^= 0x7FFFFF;
|
||||||
}
|
|
||||||
|
|
||||||
return Code;
|
return Code;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t DCS_GetCdcssCode(uint32_t Code)
|
uint8_t DCS_GetCdcssCode(uint32_t Code)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
unsigned int i;
|
||||||
|
for (i = 0; i < 23; i++)
|
||||||
for (i = 0; i < 23; i++) {
|
{
|
||||||
uint32_t Shift;
|
uint32_t Shift;
|
||||||
|
|
||||||
if (((Code >> 9) & 0x7U) == 4) {
|
if (((Code >> 9) & 0x7U) == 4)
|
||||||
uint8_t j;
|
{
|
||||||
|
unsigned int j;
|
||||||
for (j = 0; j < ARRAY_SIZE(DCS_Options); j++) {
|
for (j = 0; j < ARRAY_SIZE(DCS_Options); j++)
|
||||||
if (DCS_Options[j] == (Code & 0x1FF)) {
|
if (DCS_Options[j] == (Code & 0x1FF))
|
||||||
if (DCS_GetGolayCodeWord(2, j) == Code) {
|
if (DCS_GetGolayCodeWord(2, j) == Code)
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Shift = Code >> 1;
|
Shift = Code >> 1;
|
||||||
if (Code & 1U) {
|
if (Code & 1U)
|
||||||
Shift |= 0x400000U;
|
Shift |= 0x400000U;
|
||||||
}
|
|
||||||
Code = Shift;
|
Code = Shift;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,19 +93,17 @@ uint8_t DCS_GetCdcssCode(uint32_t Code)
|
|||||||
|
|
||||||
uint8_t DCS_GetCtcssCode(uint16_t Code)
|
uint8_t DCS_GetCtcssCode(uint16_t Code)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
unsigned int i;
|
||||||
int Smallest;
|
|
||||||
uint8_t Result = 0xFF;
|
uint8_t Result = 0xFF;
|
||||||
|
int Smallest = ARRAY_SIZE(CTCSS_Options);
|
||||||
|
|
||||||
Smallest = ARRAY_SIZE(CTCSS_Options);
|
for (i = 0; i < ARRAY_SIZE(CTCSS_Options); i++)
|
||||||
for (i = 0; i < ARRAY_SIZE(CTCSS_Options); i++) {
|
{
|
||||||
int Delta;
|
int Delta = Code - CTCSS_Options[i];
|
||||||
|
if (Delta < 0)
|
||||||
Delta = Code - CTCSS_Options[i];
|
|
||||||
if (Delta < 0) {
|
|
||||||
Delta = -(Code - CTCSS_Options[i]);
|
Delta = -(Code - CTCSS_Options[i]);
|
||||||
}
|
if (Smallest > Delta)
|
||||||
if (Delta < Smallest) {
|
{
|
||||||
Smallest = Delta;
|
Smallest = Delta;
|
||||||
Result = i;
|
Result = i;
|
||||||
}
|
}
|
||||||
@ -132,4 +111,3 @@ uint8_t DCS_GetCtcssCode(uint16_t Code)
|
|||||||
|
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -654,7 +654,7 @@ void BK4819_ExitSubAu(void)
|
|||||||
// REG_51 <9> 0 Auto CDCSS Bw Mode 1 = Disable 0 = Enable.
|
// REG_51 <9> 0 Auto CDCSS Bw Mode 1 = Disable 0 = Enable.
|
||||||
// REG_51 <8> 0 Auto CTCSS Bw Mode 0 = Enable 1 = Disable
|
// REG_51 <8> 0 Auto CTCSS Bw Mode 0 = Enable 1 = Disable
|
||||||
// REG_51 <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning 0 = min 127 = max
|
// REG_51 <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning 0 = min 127 = max
|
||||||
|
//
|
||||||
BK4819_WriteRegister(BK4819_REG_51, 0x0000);
|
BK4819_WriteRegister(BK4819_REG_51, 0x0000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -878,7 +878,7 @@ void BK4819_EnableCDCSS(void)
|
|||||||
|
|
||||||
void BK4819_EnableCTCSS(void)
|
void BK4819_EnableCTCSS(void)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_TAIL_CTCSS_PHASE_SHIFT
|
#ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT
|
||||||
//BK4819_GenTail(1); // 120° phase shift
|
//BK4819_GenTail(1); // 120° phase shift
|
||||||
BK4819_GenTail(2); // 180° phase shift
|
BK4819_GenTail(2); // 180° phase shift
|
||||||
//BK4819_GenTail(3); // 240° phase shift
|
//BK4819_GenTail(3); // 240° phase shift
|
||||||
|
4
radio.c
4
radio.c
@ -595,7 +595,7 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0)
|
|||||||
case CODE_TYPE_OFF:
|
case CODE_TYPE_OFF:
|
||||||
BK4819_SetCTCSSFrequency(670);
|
BK4819_SetCTCSSFrequency(670);
|
||||||
|
|
||||||
//#ifndef ENABLE_TAIL_CTCSS_PHASE_SHIFT
|
//#ifndef ENABLE_CTCSS_TAIL_PHASE_SHIFT
|
||||||
BK4819_SetTailDetection(550); // QS's 55Hz tone method
|
BK4819_SetTailDetection(550); // QS's 55Hz tone method
|
||||||
//#else
|
//#else
|
||||||
// BK4819_SetTailDetection(670); // 67Hz
|
// BK4819_SetTailDetection(670); // 67Hz
|
||||||
@ -611,7 +611,7 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0)
|
|||||||
case CODE_TYPE_CONTINUOUS_TONE:
|
case CODE_TYPE_CONTINUOUS_TONE:
|
||||||
BK4819_SetCTCSSFrequency(CTCSS_Options[Code]);
|
BK4819_SetCTCSSFrequency(CTCSS_Options[Code]);
|
||||||
|
|
||||||
//#ifndef ENABLE_TAIL_CTCSS_PHASE_SHIFT
|
//#ifndef ENABLE_CTCSS_TAIL_PHASE_SHIFT
|
||||||
BK4819_SetTailDetection(550); // QS's 55Hz tone method
|
BK4819_SetTailDetection(550); // QS's 55Hz tone method
|
||||||
//#else
|
//#else
|
||||||
// BK4819_SetTailDetection(CTCSS_Options[Code]);
|
// BK4819_SetTailDetection(CTCSS_Options[Code]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user