Some code realignment, including changing from millis to elapsedMillis.
This commit is contained in:
parent
d97f282f7b
commit
c1c4dd3f19
@ -7,12 +7,12 @@ KD8CEC, Ian Lee
|
|||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#include <arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
//================================================================
|
//================================================================
|
||||||
//COMMUNICATION SECTION
|
//COMMUNICATION SECTION
|
||||||
//================================================================
|
//================================================================
|
||||||
#define USE_SW_SERIAL
|
//#define USE_SW_SERIAL
|
||||||
|
|
||||||
extern void SWSerial_Write(uint8_t b);
|
extern void SWSerial_Write(uint8_t b);
|
||||||
extern void SWSerial_Print(uint8_t *b);
|
extern void SWSerial_Print(uint8_t *b);
|
||||||
@ -72,5 +72,3 @@ extern int magnitudelimit_low;
|
|||||||
#define SIGNAL_METER_ADC A7
|
#define SIGNAL_METER_ADC A7
|
||||||
#define POWER_METER_ADC A3
|
#define POWER_METER_ADC A3
|
||||||
#define SWR_METER_ADC A2
|
#define SWR_METER_ADC A2
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ Version : 0.8
|
|||||||
License : See fftfunctions.cpp for FFT and CW Decode.
|
License : See fftfunctions.cpp for FFT and CW Decode.
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
#include <Wire.h>
|
#include <i2c_t3.h> // using i2c_t3 library for multiple I2C busses
|
||||||
#include <EEPROM.h>
|
#include <EEPROM.h>
|
||||||
#include "TeensyDSP.h"
|
#include "TeensyDSP.h"
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ void SendCommand1Num(char varType, char sendValue) //0~9 : Mode, nowDisp, Active
|
|||||||
int I2CCommand = 0;
|
int I2CCommand = 0;
|
||||||
void CalculateCoeff(uint8_t freqIndex);
|
void CalculateCoeff(uint8_t freqIndex);
|
||||||
|
|
||||||
char ForwardBuff[MAX_FORWARD_BUFF_LENGTH + 1];
|
char forwardBuff[MAX_FORWARD_BUFF_LENGTH + 1];
|
||||||
static char nowBuffIndex = 0;
|
static char nowBuffIndex = 0;
|
||||||
static char etxCount = 0;
|
static char etxCount = 0;
|
||||||
static char nowSendingProtocol = 0;
|
static char nowSendingProtocol = 0;
|
||||||
@ -209,7 +209,7 @@ char DSPType = 1; //0 : Not Use, 1 : FFT, 2 : Morse Decoder, 3 : RTTY Decoder
|
|||||||
char FFTToUartIdleCount = 0;
|
char FFTToUartIdleCount = 0;
|
||||||
#define FFTToUartInterval 2
|
#define FFTToUartInterval 2
|
||||||
|
|
||||||
unsigned long lastForwardmili = 0;
|
elapsedMillis sinceForward = 0;
|
||||||
uint8_t responseCommand = 0; //
|
uint8_t responseCommand = 0; //
|
||||||
uint8_t TXStatus = 0; //0:RX, 1:TX
|
uint8_t TXStatus = 0; //0:RX, 1:TX
|
||||||
void ResponseConfig()
|
void ResponseConfig()
|
||||||
@ -280,13 +280,13 @@ char CommandPasrser(int lastIndex)
|
|||||||
for (int i = lastIndex - 3; i >= startIndex + 7; i--)
|
for (int i = lastIndex - 3; i >= startIndex + 7; i--)
|
||||||
{
|
{
|
||||||
//Find =
|
//Find =
|
||||||
if (ForwardBuff[i-3] == 'v' && ForwardBuff[i-2] == 'a' && ForwardBuff[i-1] == 'l' && ForwardBuff[i] == '=') //0x3D
|
if (forwardBuff[i-3] == 'v' && forwardBuff[i-2] == 'a' && forwardBuff[i-1] == 'l' && forwardBuff[i] == '=') //0x3D
|
||||||
{
|
{
|
||||||
uint8_t command1 = ForwardBuff[i-6]; //v
|
uint8_t command1 = forwardBuff[i-6]; //v
|
||||||
uint8_t command2 = ForwardBuff[i-5]; //v
|
uint8_t command2 = forwardBuff[i-5]; //v
|
||||||
// i-4 //.
|
// i-4 //.
|
||||||
ForwardBuff[lastIndex - 2] = 0;
|
forwardBuff[lastIndex - 2] = 0;
|
||||||
long commandVal=atol(&ForwardBuff[i + 1]);
|
long commandVal=atol(&forwardBuff[i + 1]);
|
||||||
uint8_t *ReadBuff = (uint8_t *)&commandVal;
|
uint8_t *ReadBuff = (uint8_t *)&commandVal;
|
||||||
|
|
||||||
//Loop Back
|
//Loop Back
|
||||||
@ -299,19 +299,19 @@ char CommandPasrser(int lastIndex)
|
|||||||
Serial.print("Found :");
|
Serial.print("Found :");
|
||||||
for (int k = i + 1; k <= lastIndex - 3; k++)
|
for (int k = i + 1; k <= lastIndex - 3; k++)
|
||||||
{
|
{
|
||||||
Serial.write(ForwardBuff[k]);
|
Serial.write(forwardBuff[k]);
|
||||||
}
|
}
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.print("Reverse :");
|
Serial.print("Reverse :");
|
||||||
for (int k = lastIndex - 3; k >= i + 1; k--)
|
for (int k = lastIndex - 3; k >= i + 1; k--)
|
||||||
{
|
{
|
||||||
Serial.write(ForwardBuff[k]);
|
Serial.write(forwardBuff[k]);
|
||||||
}
|
}
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
|
||||||
ForwardBuff[lastIndex - 2] = 0;
|
forwardBuff[lastIndex - 2] = 0;
|
||||||
|
|
||||||
tmpVal=atol(&ForwardBuff[i + 1]);
|
tmpVal=atol(&forwardBuff[i + 1]);
|
||||||
Serial.println(tmpVal);
|
Serial.println(tmpVal);
|
||||||
|
|
||||||
uint8_t *ReadBuff = (uint8_t *)&tmpVal;
|
uint8_t *ReadBuff = (uint8_t *)&tmpVal;
|
||||||
@ -341,7 +341,7 @@ char CommandPasrser(int lastIndex)
|
|||||||
Serial.print(":");
|
Serial.print(":");
|
||||||
for (int k = i + 1; k <= lastIndex - 3; k++)
|
for (int k = i + 1; k <= lastIndex - 3; k++)
|
||||||
{
|
{
|
||||||
Serial.write(ForwardBuff[k]);
|
Serial.write(forwardBuff[k]);
|
||||||
}
|
}
|
||||||
Serial.println("");
|
Serial.println("");
|
||||||
//End of Tet Code 2
|
//End of Tet Code 2
|
||||||
@ -414,32 +414,38 @@ char CommandPasrser(int lastIndex)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//#define PROTOCOL_TIMEOUT = 100
|
//#define PROTOCOL_TIMEOUT = 100
|
||||||
int ForwardData(void)
|
|
||||||
|
/*!
|
||||||
|
@brief Forwards serial data from the RX line to the TX line.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int forwardData(void)
|
||||||
{
|
{
|
||||||
uint8_t recvChar;
|
int recvChar;
|
||||||
|
|
||||||
if (Serial.available() > 0)
|
if (Serial.available() > 0)
|
||||||
{
|
{
|
||||||
#ifndef USE_SW_SERIAL
|
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
#endif
|
|
||||||
//Check RX Buffer
|
// Check RX buffer for available data.
|
||||||
while (Serial.available() > 0)
|
while (Serial.available() > 0)
|
||||||
{
|
{
|
||||||
recvChar = Serial.read();
|
recvChar = Serial.read();
|
||||||
|
|
||||||
ForwardBuff[nowBuffIndex] = recvChar;
|
forwardBuff[nowBuffIndex] = char(recvChar);
|
||||||
|
|
||||||
if (recvChar == 0xFF) //found ETX
|
if (recvChar == 0xFF) // found ETX
|
||||||
{
|
{
|
||||||
etxCount++; //Nextion Protocol, ETX : 0xFF, 0xFF, 0xFF
|
etxCount++; // Nextion protocol, ETX: 0xFF, 0xFF, 0xFF
|
||||||
if (etxCount >= 3)
|
if (etxCount >= 3)
|
||||||
{
|
{
|
||||||
//Finished Protocol
|
// Finished Protocol
|
||||||
if (CommandPasrser(nowBuffIndex) == 1)
|
if (CommandPasrser(nowBuffIndex) == 1)
|
||||||
{
|
{
|
||||||
nowSendingProtocol = 0; //Finished 1 Set Command
|
nowSendingProtocol = 0; // finished 1 set command
|
||||||
etxCount = 0;
|
etxCount = 0;
|
||||||
nowBuffIndex = 0;
|
nowBuffIndex = 0;
|
||||||
}
|
}
|
||||||
@ -448,29 +454,24 @@ int ForwardData(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
etxCount = 0x00;
|
etxCount = 0x00;
|
||||||
nowSendingProtocol = 1; //Sending Data
|
nowSendingProtocol = 1; // sending data
|
||||||
}
|
}
|
||||||
|
|
||||||
SWSerial_Write(recvChar);
|
Serial.write(recvChar);
|
||||||
lastForwardmili = millis();
|
sinceForward = 0;
|
||||||
nowBuffIndex++;
|
nowBuffIndex++;
|
||||||
|
|
||||||
if (nowBuffIndex > MAX_FORWARD_BUFF_LENGTH -2)
|
if (nowBuffIndex > MAX_FORWARD_BUFF_LENGTH - 2)
|
||||||
{
|
{
|
||||||
nowBuffIndex = 0;
|
nowBuffIndex = 0;
|
||||||
}
|
}
|
||||||
} //end of while
|
} //end of while
|
||||||
|
|
||||||
#ifndef USE_SW_SERIAL
|
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
#endif
|
}
|
||||||
|
|
||||||
//lastReceivedTime = millis();
|
|
||||||
} //end if (Serial.available
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//check Timeout
|
// check timeout
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -638,19 +639,19 @@ void setup()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// put your setup code here, to run once:
|
// put your setup code here, to run once:
|
||||||
Wire.begin(I2CMETER_ADDR); //j : S-Meter Slave Address
|
Wire1.begin(I2CMETER_ADDR); //j : S-Meter Slave Address
|
||||||
//Wire.begin(0x21); //j : S-Meter Slave Address
|
//Wire1.begin(0x21); //j : S-Meter Slave Address
|
||||||
Wire.onReceive(I2CReceiveEvent); //
|
Wire1.onReceive(I2CReceiveEvent); //
|
||||||
Wire.onRequest(I2CRequestEvent);
|
Wire1.onRequest(I2CRequestEvent);
|
||||||
|
|
||||||
#ifdef USE_SW_SERIAL
|
//#ifdef USE_SW_SERIAL
|
||||||
SWSerial_Begin(9600);
|
// SWSerial_Begin(9600);
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
Serial.begin(9600, SERIAL_8N1);
|
Serial.begin(9600, SERIAL_8N1);
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
SAMPLE_INTERVAL = round(1000000 * (1.0 / SAMPLE_PREQUENCY));
|
SAMPLE_INTERVAL = round(1000000 * (1.0 / SAMPLE_PREQUENCY));
|
||||||
CalculateCoeff(cwDecodeHz); //Set 750Hz //9 * 50 + 300 = 750Hz
|
//CalculateCoeff(cwDecodeHz); //Set 750Hz //9 * 50 + 300 = 750Hz
|
||||||
//Serial.println("Start...");
|
//Serial.println("Start...");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -658,9 +659,9 @@ void I2CReceiveEvent(void)
|
|||||||
{
|
{
|
||||||
int readCommand = 0; // byte를 읽어 int로 변환
|
int readCommand = 0; // byte를 읽어 int로 변환
|
||||||
|
|
||||||
while(Wire.available() > 0) // for Last command
|
while(Wire1.available() > 0) // for Last command
|
||||||
{
|
{
|
||||||
readCommand = Wire.read();
|
readCommand = Wire1.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0x50 <= readCommand && readCommand <= 0x59)
|
if (0x50 <= readCommand && readCommand <= 0x59)
|
||||||
@ -684,11 +685,11 @@ void I2CRequestEvent(void)
|
|||||||
|
|
||||||
if (I2CCommand == I2CMETER_CALCS)
|
if (I2CCommand == I2CMETER_CALCS)
|
||||||
{
|
{
|
||||||
Wire.write(scaledSMeter);
|
Wire1.write(scaledSMeter);
|
||||||
}
|
}
|
||||||
else if (I2CCommand == I2CMETER_UNCALCS)
|
else if (I2CCommand == I2CMETER_UNCALCS)
|
||||||
{
|
{
|
||||||
//Wire.write(ADC_DIFF);
|
//Wire1.write(ADC_DIFF);
|
||||||
//8292Hz
|
//8292Hz
|
||||||
for(int i=0; i < 7; i++)
|
for(int i=0; i < 7; i++)
|
||||||
{
|
{
|
||||||
@ -718,17 +719,17 @@ void I2CRequestEvent(void)
|
|||||||
{
|
{
|
||||||
readedValue = 255;
|
readedValue = 255;
|
||||||
}
|
}
|
||||||
Wire.write(readedValue);
|
Wire1.write(readedValue);
|
||||||
}
|
}
|
||||||
else if (I2CCommand == I2CMETER_CALCP)
|
else if (I2CCommand == I2CMETER_CALCP)
|
||||||
{
|
{
|
||||||
readedValue = analogRead(POWER_METER_ADC); //POWER
|
readedValue = analogRead(POWER_METER_ADC); //POWER
|
||||||
Wire.write(readedValue);
|
Wire1.write(readedValue);
|
||||||
}
|
}
|
||||||
else if (I2CCommand == I2CMETER_CALCR) //SWR
|
else if (I2CCommand == I2CMETER_CALCR) //SWR
|
||||||
{
|
{
|
||||||
readedValue = analogRead(SWR_METER_ADC);
|
readedValue = analogRead(SWR_METER_ADC);
|
||||||
Wire.write(readedValue);
|
Wire1.write(readedValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -756,13 +757,14 @@ void loop()
|
|||||||
char isProcess = 0; //0 : Init, 1 : Complete ADC Sampling, 2 : Complete FFT
|
char isProcess = 0; //0 : Init, 1 : Complete ADC Sampling, 2 : Complete FFT
|
||||||
isProcess = 0;
|
isProcess = 0;
|
||||||
|
|
||||||
ForwardData();
|
forwardData();
|
||||||
|
|
||||||
if (isBooted < 100)
|
if (isBooted < 100)
|
||||||
{
|
{
|
||||||
//Delay 20msec
|
//Delay 20msec
|
||||||
for (int i = 0; i < 20; i++)
|
for (int i = 0; i < 20; i++)
|
||||||
{
|
{
|
||||||
ForwardData();
|
forwardData();
|
||||||
delay(1);
|
delay(1);
|
||||||
}
|
}
|
||||||
isBooted++;
|
isBooted++;
|
||||||
@ -805,7 +807,7 @@ void loop()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//for Realtime LCD Display
|
//for Realtime LCD Display
|
||||||
ForwardData();
|
forwardData();
|
||||||
|
|
||||||
if (clcCount++ > 10)
|
if (clcCount++ > 10)
|
||||||
{
|
{
|
||||||
@ -862,7 +864,7 @@ void loop()
|
|||||||
|
|
||||||
for (int i = 0; i < 10; i++)
|
for (int i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
ForwardData();
|
forwardData();
|
||||||
if (TXStatus != 1) //if TX -> RX break
|
if (TXStatus != 1) //if TX -> RX break
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@ -907,7 +909,7 @@ void loop()
|
|||||||
isProcess = 1; //Mark => Complete ADC Sampling
|
isProcess = 1; //Mark => Complete ADC Sampling
|
||||||
}
|
}
|
||||||
|
|
||||||
ForwardData();
|
forwardData();
|
||||||
|
|
||||||
//===========================================
|
//===========================================
|
||||||
// Send Signal Meter to UART
|
// Send Signal Meter to UART
|
||||||
@ -932,10 +934,10 @@ void loop()
|
|||||||
SendMeterData(0); //only calculate Signal Level
|
SendMeterData(0); //only calculate Signal Level
|
||||||
}
|
}
|
||||||
|
|
||||||
ForwardData();
|
forwardData();
|
||||||
|
|
||||||
//Check Response Command
|
//Check Response Command
|
||||||
if (responseCommand > 0 && millis() > lastForwardmili + LAST_TIME_INTERVAL)
|
if (responseCommand > 0 && sinceForward > LAST_TIME_INTERVAL)
|
||||||
{
|
{
|
||||||
ResponseConfig();
|
ResponseConfig();
|
||||||
}
|
}
|
||||||
@ -943,7 +945,7 @@ void loop()
|
|||||||
//===================================================================================
|
//===================================================================================
|
||||||
// DSP Routine
|
// DSP Routine
|
||||||
//===================================================================================
|
//===================================================================================
|
||||||
if (DSPType == 1 && millis() > lastForwardmili + LAST_TIME_INTERVAL) //Spectrum : FFT => Send To UART
|
if (DSPType == 1 && sinceForward > LAST_TIME_INTERVAL) // spectrum: FFT => send To UART
|
||||||
{
|
{
|
||||||
FFTToUartIdleCount = 0;
|
FFTToUartIdleCount = 0;
|
||||||
|
|
||||||
@ -953,7 +955,7 @@ void loop()
|
|||||||
isProcess = 2;
|
isProcess = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
ForwardData();
|
forwardData();
|
||||||
|
|
||||||
if (isProcess == 2)
|
if (isProcess == 2)
|
||||||
{
|
{
|
||||||
@ -965,7 +967,7 @@ void loop()
|
|||||||
isProcess = 3;
|
isProcess = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
ForwardData();
|
forwardData();
|
||||||
|
|
||||||
if (isProcess == 3)
|
if (isProcess == 3)
|
||||||
{
|
{
|
||||||
@ -1012,3 +1014,7 @@ void loop()
|
|||||||
Decode_Morse(magnitude);
|
Decode_Morse(magnitude);
|
||||||
} //enf of if
|
} //enf of if
|
||||||
} //end of main
|
} //end of main
|
||||||
|
|
||||||
|
//======================================================================
|
||||||
|
// EOF
|
||||||
|
//======================================================================
|
||||||
|
Loading…
x
Reference in New Issue
Block a user