mirror of
https://github.com/juribeparada/MMDVM_HS.git
synced 2025-12-06 07:12:08 +01:00
Some contextual cleanups.
This commit is contained in:
parent
023462a86d
commit
92597e0d00
97
ADF7021.cpp
97
ADF7021.cpp
|
|
@ -54,10 +54,8 @@ uint16_t m_pocsagDev;
|
|||
|
||||
static void Send_AD7021_control_shift()
|
||||
{
|
||||
int AD7021_counter;
|
||||
|
||||
for(AD7021_counter = 31; AD7021_counter >= 0; AD7021_counter--) {
|
||||
if(bitRead(AD7021_control_word, AD7021_counter) == HIGH)
|
||||
for (int AD7021_counter = 31; AD7021_counter >= 0; AD7021_counter--) {
|
||||
if (bitRead(AD7021_control_word, AD7021_counter) == HIGH)
|
||||
io.SDATA_pin(HIGH);
|
||||
else
|
||||
io.SDATA_pin(LOW);
|
||||
|
|
@ -67,6 +65,7 @@ static void Send_AD7021_control_shift()
|
|||
io.dlybit();
|
||||
io.SCLK_pin(LOW);
|
||||
}
|
||||
|
||||
// to keep SDATA signal at defined level when idle (not required)
|
||||
io.SDATA_pin(LOW);
|
||||
}
|
||||
|
|
@ -82,9 +81,8 @@ void Send_AD7021_control(bool doSle)
|
|||
{
|
||||
Send_AD7021_control_shift();
|
||||
|
||||
if (doSle) {
|
||||
if (doSle)
|
||||
Send_AD7021_control_slePulse();
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(DUPLEX)
|
||||
|
|
@ -99,9 +97,8 @@ void Send_AD7021_control2(bool doSle)
|
|||
{
|
||||
Send_AD7021_control_shift();
|
||||
|
||||
if (doSle) {
|
||||
if (doSle)
|
||||
Send_AD7021_control_sle2Pulse();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -110,15 +107,14 @@ uint16_t CIO::readRSSI()
|
|||
{
|
||||
uint32_t AD7021_RB;
|
||||
uint16_t RB_word = 0U;
|
||||
int AD7021_counter;
|
||||
uint8_t RB_code, gain_code, gain_corr;
|
||||
|
||||
// Register 7, readback enable, ADC RSSI mode
|
||||
AD7021_RB = 0x0147;
|
||||
|
||||
// Send control register
|
||||
for(AD7021_counter = 8; AD7021_counter >= 0; AD7021_counter--) {
|
||||
if(bitRead(AD7021_RB, AD7021_counter) == HIGH)
|
||||
for (int AD7021_counter = 8; AD7021_counter >= 0; AD7021_counter--) {
|
||||
if (bitRead(AD7021_RB, AD7021_counter) == HIGH)
|
||||
SDATA_pin(HIGH);
|
||||
else
|
||||
SDATA_pin(LOW);
|
||||
|
|
@ -143,16 +139,15 @@ uint16_t CIO::readRSSI()
|
|||
dlybit();
|
||||
|
||||
// Read SREAD pin
|
||||
for(AD7021_counter = 17; AD7021_counter >= 0; AD7021_counter--) {
|
||||
for (int AD7021_counter = 17; AD7021_counter >= 0; AD7021_counter--) {
|
||||
SCLK_pin(HIGH);
|
||||
dlybit();
|
||||
|
||||
if( (AD7021_counter != 17) && (AD7021_counter != 0) )
|
||||
RB_word |= ( (SREAD_pin() & 0x01) << (AD7021_counter-1) );
|
||||
if ((AD7021_counter != 17) && (AD7021_counter != 0))
|
||||
RB_word |= ((SREAD_pin() & 0x01) << (AD7021_counter - 1));
|
||||
|
||||
SCLK_pin(LOW);
|
||||
dlybit();
|
||||
|
||||
}
|
||||
|
||||
#if defined(DUPLEX)
|
||||
|
|
@ -223,7 +218,7 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
#endif
|
||||
|
||||
// Toggle CE pin for ADF7021 reset
|
||||
if(reset) {
|
||||
if (reset) {
|
||||
CE_pin(LOW);
|
||||
delay_reset();
|
||||
CE_pin(HIGH);
|
||||
|
|
@ -231,28 +226,24 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
}
|
||||
|
||||
// Check frequency band
|
||||
if( (m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX) ) {
|
||||
if ((m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
else if( (m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX) ) {
|
||||
} else if ((m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_VHF2; // VHF1, external VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
else if( (m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX) ) {
|
||||
} else if ((m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
else if( (m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX) ) {
|
||||
} else if ((m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_UHF2; // UHF2, internal VCO
|
||||
div2 = 2U;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
|
||||
if(div2 == 1U)
|
||||
if (div2 == 1U)
|
||||
f_div = 2U;
|
||||
else
|
||||
f_div = 1U;
|
||||
|
|
@ -282,10 +273,10 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
break;
|
||||
}
|
||||
|
||||
if( div2 == 1U )
|
||||
if (div2 == 1U)
|
||||
divider = (m_frequency_rx - 100000 + AFC_OFFSET) / (ADF7021_PFD / 2U);
|
||||
else
|
||||
divider = (m_frequency_rx - 100000 + (2*AFC_OFFSET)) / ADF7021_PFD;
|
||||
divider = (m_frequency_rx - 100000 + (2 * AFC_OFFSET)) / ADF7021_PFD;
|
||||
|
||||
m_RX_N_divider = floor(divider);
|
||||
divider = (divider - m_RX_N_divider) * 32768;
|
||||
|
|
@ -302,7 +293,7 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
ADF7021_RX_REG0 |= (uint32_t) m_RX_N_divider << 19; // frequency;
|
||||
ADF7021_RX_REG0 |= (uint32_t) m_RX_F_divider << 4; // frequency;
|
||||
|
||||
if( div2 == 1U )
|
||||
if (div2 == 1U)
|
||||
divider = m_frequency_tx / (ADF7021_PFD / 2U);
|
||||
else
|
||||
divider = m_frequency_tx / ADF7021_PFD;
|
||||
|
|
@ -424,7 +415,7 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
break;
|
||||
|
||||
case STATE_YSF:
|
||||
// Dev: +1 symb 900 Hz, symb rate = 4800
|
||||
// Dev: +1 symb 900/450 Hz, symb rate = 4800
|
||||
|
||||
ADF7021_REG3 = (m_LoDevYSF ? ADF7021_REG3_YSF_L : ADF7021_REG3_YSF_H);
|
||||
ADF7021_REG10 = ADF7021_REG10_YSF;
|
||||
|
|
@ -623,7 +614,7 @@ void CIO::ifConf(MMDVM_STATE modemState, bool reset)
|
|||
}
|
||||
|
||||
#if defined(DUPLEX)
|
||||
if(m_duplex && (modemState != STATE_CWID && modemState != STATE_POCSAG))
|
||||
if (m_duplex && (modemState != STATE_CWID && modemState != STATE_POCSAG))
|
||||
ifConf2(modemState);
|
||||
#endif
|
||||
}
|
||||
|
|
@ -685,7 +676,7 @@ void CIO::ifConf2(MMDVM_STATE modemState)
|
|||
break;
|
||||
|
||||
case STATE_YSF:
|
||||
// Dev: +1 symb 2700/900 Hz, symb rate = 4800
|
||||
// Dev: +1 symb 900/450 Hz, symb rate = 4800
|
||||
|
||||
ADF7021_REG3 = (m_LoDevYSF ? ADF7021_REG3_YSF_L : ADF7021_REG3_YSF_H);
|
||||
ADF7021_REG10 = ADF7021_REG10_YSF;
|
||||
|
|
@ -862,25 +853,23 @@ void CIO::interrupt()
|
|||
// possibly this is a design problem of the RF7021 board or too long wires
|
||||
// on the breadboard build
|
||||
// but normally this will not hurt too much
|
||||
if (clk == last_clk) {
|
||||
if (clk == last_clk)
|
||||
return;
|
||||
} else {
|
||||
else
|
||||
last_clk = clk;
|
||||
}
|
||||
|
||||
// we set the TX bit at TXD low, sampling of ADF7021 happens at rising clock
|
||||
if (m_tx && clk == 0U) {
|
||||
|
||||
m_txBuffer.get(bit, m_control);
|
||||
even = !even;
|
||||
|
||||
#if defined(BIDIR_DATA_PIN)
|
||||
if(bit)
|
||||
if (bit)
|
||||
RXD_pin_write(HIGH);
|
||||
else
|
||||
RXD_pin_write(LOW);
|
||||
#else
|
||||
if(bit)
|
||||
if (bit)
|
||||
TXD_pin(HIGH);
|
||||
else
|
||||
TXD_pin(LOW);
|
||||
|
|
@ -912,7 +901,7 @@ void CIO::interrupt()
|
|||
|
||||
// we sample the RX bit at rising TXD clock edge, so TXD must be 1 and we are not in tx mode
|
||||
if (!m_tx && clk == 1U && !m_duplex) {
|
||||
if(RXD_pin())
|
||||
if (RXD_pin())
|
||||
bit = 1U;
|
||||
else
|
||||
bit = 0U;
|
||||
|
|
@ -920,7 +909,7 @@ void CIO::interrupt()
|
|||
m_rxBuffer.put(bit, m_control);
|
||||
}
|
||||
|
||||
if (torx_request == true && even == ADF7021_EVEN_BIT && m_tx && clk == 0U) {
|
||||
if (torx_request && even == ADF7021_EVEN_BIT && m_tx && clk == 0U) {
|
||||
// that is absolutely crucial in 4FSK, see datasheet:
|
||||
// enable sle after 1/4 tBit == 26uS when sending MSB (even == false) and clock is low
|
||||
delay_us(26U);
|
||||
|
|
@ -946,10 +935,10 @@ void CIO::interrupt()
|
|||
m_modeTimerCnt++;
|
||||
m_int1counter++;
|
||||
|
||||
if(m_scanPauseCnt >= SCAN_PAUSE)
|
||||
if (m_scanPauseCnt >= SCAN_PAUSE)
|
||||
m_scanPauseCnt = 0U;
|
||||
|
||||
if(m_scanPauseCnt != 0U)
|
||||
if (m_scanPauseCnt != 0U)
|
||||
m_scanPauseCnt++;
|
||||
}
|
||||
|
||||
|
|
@ -958,8 +947,8 @@ void CIO::interrupt2()
|
|||
{
|
||||
uint8_t bit = 0U;
|
||||
|
||||
if(m_duplex) {
|
||||
if(RXD2_pin())
|
||||
if (m_duplex) {
|
||||
if (RXD2_pin())
|
||||
bit = 1U;
|
||||
else
|
||||
bit = 0U;
|
||||
|
|
@ -1003,7 +992,7 @@ void CIO::setRX(bool doSle)
|
|||
Data_dir_out(false); // Data pin input mode
|
||||
#endif
|
||||
|
||||
if(!doSle) {
|
||||
if (!doSle) {
|
||||
torx_request = true;
|
||||
while(torx_request) { asm volatile ("nop"); }
|
||||
}
|
||||
|
|
@ -1036,28 +1025,24 @@ void CIO::updateCal()
|
|||
float divider;
|
||||
|
||||
// Check frequency band
|
||||
if( (m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX) ) {
|
||||
if ((m_frequency_tx >= VHF1_MIN) && (m_frequency_tx < VHF1_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_VHF1; // VHF1, external VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
else if( (m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX) ) {
|
||||
} else if ((m_frequency_tx >= VHF2_MIN) && (m_frequency_tx < VHF2_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_VHF2; // VHF1, external VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
else if( (m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX) ) {
|
||||
} else if ((m_frequency_tx >= UHF1_MIN)&&(m_frequency_tx < UHF1_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
else if( (m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX) ) {
|
||||
} else if ((m_frequency_tx >= UHF2_MIN)&&(m_frequency_tx < UHF2_MAX)) {
|
||||
ADF7021_REG1 = ADF7021_REG1_UHF2; // UHF2, internal VCO
|
||||
div2 = 2U;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
ADF7021_REG1 = ADF7021_REG1_UHF1; // UHF1, internal VCO
|
||||
div2 = 1U;
|
||||
}
|
||||
|
||||
if(div2 == 1U)
|
||||
if (div2 == 1U)
|
||||
f_div = 2U;
|
||||
else
|
||||
f_div = 1U;
|
||||
|
|
@ -1083,7 +1068,7 @@ void CIO::updateCal()
|
|||
AD7021_control_word = ADF7021_REG2;
|
||||
Send_AD7021_control();
|
||||
|
||||
if( div2 == 1U )
|
||||
if (div2 == 1U)
|
||||
divider = m_frequency_tx / (ADF7021_PFD / 2U);
|
||||
else
|
||||
divider = m_frequency_tx / ADF7021_PFD;
|
||||
|
|
|
|||
Loading…
Reference in a new issue