Apply DSP meter to all lcd types
This commit is contained in:
parent
b984f62dfd
commit
c27bbf1b6b
@ -29,12 +29,14 @@
|
|||||||
//#define UBITX_DISPLAY_LCD1602I_DUAL //I2C type 16 x02 LCD Dual
|
//#define UBITX_DISPLAY_LCD1602I_DUAL //I2C type 16 x02 LCD Dual
|
||||||
//#define UBITX_DISPLAY_LCD2004P //24 x 04 LCD (Parallel)
|
//#define UBITX_DISPLAY_LCD2004P //24 x 04 LCD (Parallel)
|
||||||
//#define UBITX_DISPLAY_LCD2004I //I2C type 24 x 04 LCD
|
//#define UBITX_DISPLAY_LCD2004I //I2C type 24 x 04 LCD
|
||||||
#define UBITX_DISPLAY_NEXTION //NEXTION LCD
|
#define UBITX_DISPLAY_NEXTION //NEXTION LCD
|
||||||
|
|
||||||
//#define UBITX_DISPLAY_NEXTION_SAFE //Only EEProm Write 770~775
|
//#define UBITX_DISPLAY_NEXTION_SAFE //Only EEProm Write 770~775
|
||||||
#define I2C_LCD_MASTER_ADDRESS_DEFAULT 0x27 //0x27 //DEFAULT, if Set I2C Address by uBITX Manager, read from EEProm
|
#define I2C_LCD_MASTER_ADDRESS_DEFAULT 0x27 //0x27 //DEFAULT, if Set I2C Address by uBITX Manager, read from EEProm
|
||||||
#define I2C_LCD_SECOND_ADDRESS_DEFAULT 0x3F //0x27 //only using Dual LCD Mode
|
#define I2C_LCD_SECOND_ADDRESS_DEFAULT 0x3F //0x27 //only using Dual LCD Mode
|
||||||
|
|
||||||
|
//Select betwen Analog S-Meter and DSP (I2C) Meter
|
||||||
|
//#define USE_I2CSMETER
|
||||||
|
|
||||||
#define EXTEND_KEY_GROUP1 //MODE, BAND(-), BAND(+), STEP
|
#define EXTEND_KEY_GROUP1 //MODE, BAND(-), BAND(+), STEP
|
||||||
//#define EXTEND_KEY_GROUP2 //Numeric (0~9), Point(.), Enter //Not supported in Version 1.0x
|
//#define EXTEND_KEY_GROUP2 //Numeric (0~9), Point(.), Enter //Not supported in Version 1.0x
|
||||||
@ -120,6 +122,24 @@ extern byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
|||||||
#define TX_LPF_C (3) //Relay
|
#define TX_LPF_C (3) //Relay
|
||||||
#define CW_KEY (2)
|
#define CW_KEY (2)
|
||||||
|
|
||||||
|
//******************************************************
|
||||||
|
//DSP (I2C) Meter
|
||||||
|
//******************************************************
|
||||||
|
//S-Meter Address
|
||||||
|
#define I2CMETER_ADDR 0x58
|
||||||
|
//VALUE TYPE============================================
|
||||||
|
//Signal
|
||||||
|
#define I2CMETER_CALCS 0x59 //Calculated Signal Meter
|
||||||
|
#define I2CMETER_UNCALCS 0x58 //Uncalculated Signal Meter
|
||||||
|
|
||||||
|
//Power
|
||||||
|
#define I2CMETER_CALCP 0x57 //Calculated Power Meter
|
||||||
|
#define I2CMETER_UNCALCP 0x56 //UnCalculated Power Meter
|
||||||
|
|
||||||
|
//SWR
|
||||||
|
#define I2CMETER_CALCR 0x55 //Calculated SWR Meter
|
||||||
|
#define I2CMETER_UNCALCR 0x54 //Uncalculated SWR Meter
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
// for public, Variable, functions
|
// for public, Variable, functions
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
@ -196,6 +216,9 @@ extern char byteToChar(byte srcByte);
|
|||||||
extern void DisplayCallsign(byte callSignLength);
|
extern void DisplayCallsign(byte callSignLength);
|
||||||
extern void DisplayVersionInfo(const char* fwVersionInfo);
|
extern void DisplayVersionInfo(const char* fwVersionInfo);
|
||||||
|
|
||||||
|
//I2C Signal Meter, Version 1.097
|
||||||
|
extern int GetI2CSmeterValue(int valueType); //ubitx_ui.ino
|
||||||
|
|
||||||
#endif //end of if header define
|
#endif //end of if header define
|
||||||
|
|
||||||
|
|
||||||
|
@ -738,6 +738,9 @@ void idle_process()
|
|||||||
{
|
{
|
||||||
int newSMeter;
|
int newSMeter;
|
||||||
|
|
||||||
|
#ifdef USE_I2CSMETER
|
||||||
|
scaledSMeter = GetI2CSmeterValue(I2CMETER_CALCS);
|
||||||
|
#else
|
||||||
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
||||||
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||||
|
|
||||||
@ -752,6 +755,7 @@ void idle_process()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
DisplayMeter(0, scaledSMeter, 13);
|
DisplayMeter(0, scaledSMeter, 13);
|
||||||
checkCountSMeter = 0; //Reset Latency time
|
checkCountSMeter = 0; //Reset Latency time
|
||||||
|
@ -669,6 +669,9 @@ void idle_process()
|
|||||||
int newSMeter;
|
int newSMeter;
|
||||||
displaySDRON = 0;
|
displaySDRON = 0;
|
||||||
|
|
||||||
|
#ifdef USE_I2CSMETER
|
||||||
|
scaledSMeter = GetI2CSmeterValue(I2CMETER_CALCS);
|
||||||
|
#else
|
||||||
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
||||||
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||||
|
|
||||||
@ -684,9 +687,9 @@ void idle_process()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
DisplayMeter(0, scaledSMeter, 0);
|
DisplayMeter(0, scaledSMeter, 0);
|
||||||
|
|
||||||
checkCountSMeter = 0;
|
checkCountSMeter = 0;
|
||||||
} //end of S-Meter
|
} //end of S-Meter
|
||||||
_Addr = I2C_LCD_MASTER_ADDRESS;
|
_Addr = I2C_LCD_MASTER_ADDRESS;
|
||||||
|
@ -690,7 +690,10 @@ void idle_process()
|
|||||||
if (((displayOption1 & 0x08) == 0x08 && (sdrModeOn == 0)) && (++checkCountSMeter > SMeterLatency))
|
if (((displayOption1 & 0x08) == 0x08 && (sdrModeOn == 0)) && (++checkCountSMeter > SMeterLatency))
|
||||||
{
|
{
|
||||||
int newSMeter;
|
int newSMeter;
|
||||||
|
|
||||||
|
#ifdef USE_I2CSMETER
|
||||||
|
scaledSMeter = GetI2CSmeterValue(I2CMETER_CALCS);
|
||||||
|
#else
|
||||||
//VK2ETA S-Meter from MAX9814 TC pin
|
//VK2ETA S-Meter from MAX9814 TC pin
|
||||||
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||||
|
|
||||||
@ -706,6 +709,7 @@ void idle_process()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
DisplayMeter(0, scaledSMeter, 0);
|
DisplayMeter(0, scaledSMeter, 0);
|
||||||
checkCountSMeter = 0; //Reset Latency time
|
checkCountSMeter = 0; //Reset Latency time
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
KD8CEC's uBITX Display Routine for Nextion LCD
|
KD8CEC's uBITX Display Routine for Nextion LCD
|
||||||
|
|
||||||
|
Uses the default protocol of Nextion LCD.
|
||||||
|
Do not assign a 2 byte address to Nextion LCD.
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -56,53 +59,6 @@ void LCD_Init(void)
|
|||||||
//initMeter(); //for Meter Display
|
//initMeter(); //for Meter Display
|
||||||
}
|
}
|
||||||
|
|
||||||
//===================================================================
|
|
||||||
//I2C Signal Meter, Version 1.097
|
|
||||||
//
|
|
||||||
//===================================================================
|
|
||||||
|
|
||||||
#define USE_I2CSMETER
|
|
||||||
//S-Meter Address
|
|
||||||
#define I2CMETER_ADDR 0x58
|
|
||||||
//VALUE TYPE============================================
|
|
||||||
//Signal
|
|
||||||
#define I2CMETER_CALCS 0x59 //Calculated Signal Meter
|
|
||||||
#define I2CMETER_UNCALCS 0x58 //Uncalculated Signal Meter
|
|
||||||
|
|
||||||
//Power
|
|
||||||
#define I2CMETER_CALCP 0x57 //Calculated Power Meter
|
|
||||||
#define I2CMETER_UNCALCP 0x56 //UnCalculated Power Meter
|
|
||||||
|
|
||||||
//SWR
|
|
||||||
#define I2CMETER_CALCR 0x55 //Calculated SWR Meter
|
|
||||||
#define I2CMETER_UNCALCR 0x54 //Uncalculated SWR Meter
|
|
||||||
|
|
||||||
// 0xA0 ~ 0xCF : CW Decode Mode + 100Hz ~
|
|
||||||
// 0xD0 ~ 0xF3 : RTTY Decode Mode + 100Hz ~
|
|
||||||
// 0x10 ~ 0x30 : Spectrum Mode
|
|
||||||
int GetI2CSmeterValue(int valueType)
|
|
||||||
{
|
|
||||||
if (valueType > 0)
|
|
||||||
{
|
|
||||||
Wire.beginTransmission(I2CMETER_ADDR); //j : S-Meter
|
|
||||||
Wire.write(valueType); //Y : Get Value Type
|
|
||||||
Wire.endTransmission();
|
|
||||||
}
|
|
||||||
|
|
||||||
Wire.requestFrom(I2CMETER_ADDR, 1);
|
|
||||||
for (int i = 0; i < 100; i++)
|
|
||||||
{
|
|
||||||
if (Wire.available() > 0)
|
|
||||||
{
|
|
||||||
return Wire.read();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
delay(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//===================================================================
|
//===================================================================
|
||||||
//Begin of Nextion LCD Protocol
|
//Begin of Nextion LCD Protocol
|
||||||
//
|
//
|
||||||
@ -678,6 +634,9 @@ void updateDisplay() {
|
|||||||
sendUIData(0); //UI
|
sendUIData(0); //UI
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//****************************************************************
|
||||||
|
// Spectrum for Range scan and Band Scan
|
||||||
|
//****************************************************************
|
||||||
#define RESPONSE_SPECTRUM 0
|
#define RESPONSE_SPECTRUM 0
|
||||||
#define RESPONSE_EEPROM 1
|
#define RESPONSE_EEPROM 1
|
||||||
#define RESPONSE_EEPROM_HEX_F 89 //C Language order
|
#define RESPONSE_EEPROM_HEX_F 89 //C Language order
|
||||||
@ -686,8 +645,8 @@ void updateDisplay() {
|
|||||||
|
|
||||||
const uint8_t ResponseHeader[11]={'p', 'm', '.', 's', 'h', '.', 't', 'x', 't', '=', '"'};
|
const uint8_t ResponseHeader[11]={'p', 'm', '.', 's', 'h', '.', 't', 'x', 't', '=', '"'};
|
||||||
const uint8_t ResponseFooter[4]={'"', 0xFF, 0xFF, 0xFF};
|
const uint8_t ResponseFooter[4]={'"', 0xFF, 0xFF, 0xFF};
|
||||||
|
|
||||||
const char HexCodes[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', };
|
const char HexCodes[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', };
|
||||||
|
|
||||||
//void sendSpectrumData(unsigned long startFreq, unsigned long incStep, int scanCount, int delayTime, int sendCount)
|
//void sendSpectrumData(unsigned long startFreq, unsigned long incStep, int scanCount, int delayTime, int sendCount)
|
||||||
//sendResponseData(RESPONSE_EEPROM, 0, eepromIndex, eepromReadLength, eepromDataType, 1);
|
//sendResponseData(RESPONSE_EEPROM, 0, eepromIndex, eepromReadLength, eepromDataType, 1);
|
||||||
//protocol Type : 0 - Spectrum, 1 : EEProm
|
//protocol Type : 0 - Spectrum, 1 : EEProm
|
||||||
@ -764,17 +723,15 @@ void sendResponseData(int protocolType, unsigned long startFreq, unsigned int se
|
|||||||
} //end of for
|
} //end of for
|
||||||
}
|
}
|
||||||
|
|
||||||
//sendSpectrumData(unsigned long startFreq, unsigned int incStep, int scanCount, int delayTime, int sendCount)
|
//****************************************************************
|
||||||
//sendSpectrumData(frequency - (1000L * 50), 1000, 100, 0, 10);
|
//Receive command and processing from External device (LCD or MCU)
|
||||||
|
//****************************************************************
|
||||||
int spectrumSendCount = 10; //count of full scan and Send
|
int spectrumSendCount = 10; //count of full scan and Send
|
||||||
int spectrumOffset = 0; //offset position
|
int spectrumOffset = 0; //offset position
|
||||||
int spectrumScanCount = 100; //Maximum 200
|
int spectrumScanCount = 100; //Maximum 200
|
||||||
unsigned int spectrumIncStep = 1000; //Increaase Step
|
unsigned int spectrumIncStep = 1000; //Increaase Step
|
||||||
|
|
||||||
// tern static uint8_t swr_receive_buffer[20];
|
|
||||||
extern uint8_t receivedCommandLength;
|
extern uint8_t receivedCommandLength;
|
||||||
extern void SWSerial_Read(uint8_t * receive_cmdBuffer);
|
extern void SWSerial_Read(uint8_t * receive_cmdBuffer);
|
||||||
//extern void byteToMode(byte modeValue, byte autoSetModebyFreq);
|
|
||||||
uint8_t swr_buffer[20];
|
uint8_t swr_buffer[20];
|
||||||
|
|
||||||
//SoftwareSerial_Process
|
//SoftwareSerial_Process
|
||||||
|
@ -268,4 +268,34 @@ int enc_read(void) {
|
|||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//===================================================================
|
||||||
|
//I2C Signal Meter, Version 1.097
|
||||||
|
//===================================================================
|
||||||
|
|
||||||
|
// 0xA0 ~ 0xCF : CW Decode Mode + 100Hz ~
|
||||||
|
// 0xD0 ~ 0xF3 : RTTY Decode Mode + 100Hz ~
|
||||||
|
// 0x10 ~ 0x30 : Spectrum Mode
|
||||||
|
int GetI2CSmeterValue(int valueType)
|
||||||
|
{
|
||||||
|
if (valueType > 0)
|
||||||
|
{
|
||||||
|
Wire.beginTransmission(I2CMETER_ADDR); //j : S-Meter
|
||||||
|
Wire.write(valueType); //Y : Get Value Type
|
||||||
|
Wire.endTransmission();
|
||||||
|
}
|
||||||
|
|
||||||
|
Wire.requestFrom(I2CMETER_ADDR, 1);
|
||||||
|
for (int i = 0; i < 100; i++)
|
||||||
|
{
|
||||||
|
if (Wire.available() > 0)
|
||||||
|
{
|
||||||
|
return Wire.read();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delay(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user