Optimize codes

This commit is contained in:
phdlee 2018-02-03 16:35:27 +09:00
parent d229a10092
commit dd68b38454
4 changed files with 276 additions and 329 deletions

View File

@ -382,7 +382,7 @@ void setNextHamBandFreq(unsigned long f, char moveDirection)
resultFreq = (unsigned long)(hamBandRange[(unsigned char)findedIndex][0]) * 1000; resultFreq = (unsigned long)(hamBandRange[(unsigned char)findedIndex][0]) * 1000;
setFrequency(resultFreq); setFrequency(resultFreq);
byteWithFreqToMode(loadMode); byteToMode(loadMode, 1);
} }
void saveBandFreqByIndex(unsigned long f, unsigned long mode, char bandIndex) { void saveBandFreqByIndex(unsigned long f, unsigned long mode, char bandIndex) {
@ -537,12 +537,12 @@ void startTx(byte txMode, byte isDisplayUpdate){
if (vfoActive == VFO_B) { if (vfoActive == VFO_B) {
vfoActive = VFO_A; vfoActive = VFO_A;
frequency = vfoA; frequency = vfoA;
byteToMode(vfoA_mode); byteToMode(vfoA_mode, 0);
} }
else if (vfoActive == VFO_A){ else if (vfoActive == VFO_A){
vfoActive = VFO_B; vfoActive = VFO_B;
frequency = vfoB; frequency = vfoB;
byteToMode(vfoB_mode); byteToMode(vfoB_mode, 0);
} }
setFrequency(frequency); setFrequency(frequency);
@ -597,12 +597,12 @@ void stopTx(){
if (vfoActive == VFO_B){ if (vfoActive == VFO_B){
vfoActive = VFO_A; vfoActive = VFO_A;
frequency = vfoA; frequency = vfoA;
byteToMode(vfoA_mode); byteToMode(vfoA_mode, 0);
} }
else if (vfoActive == VFO_A){ else if (vfoActive == VFO_A){
vfoActive = VFO_B; vfoActive = VFO_B;
frequency = vfoB; frequency = vfoB;
byteToMode(vfoB_mode); byteToMode(vfoB_mode, 0);
} }
setFrequency(frequency); setFrequency(frequency);
} //end of else } //end of else
@ -755,27 +755,8 @@ void doRIT(){
updateDisplay(); updateDisplay();
} }
} }
/* /*
void doIFShift(){ save Frequency and mode to eeprom for Auto Save with protected eeprom cycle, by kd8cec
int knob = enc_read();
unsigned long old_freq = frequency;
if (knob != 0)
{
if (knob < 0)
ifShiftValue -= 1l;
else if (knob > 0)
ifShiftValue += 1;
updateLine2Buffer(1);
setFrequency(frequency);
}
}
*/
/**
save Frequency and mode to eeprom
*/ */
void storeFrequencyAndMode(byte saveType) void storeFrequencyAndMode(byte saveType)
{ {
@ -807,6 +788,7 @@ void storeFrequencyAndMode(byte saveType)
} }
} }
//calculate step size from 1 byte, compatible uBITX Manager, by KD8CEC
unsigned int byteToSteps(byte srcByte) { unsigned int byteToSteps(byte srcByte) {
byte powerVal = (byte)(srcByte >> 6); byte powerVal = (byte)(srcByte >> 6);
unsigned int baseVal = srcByte & 0x3F; unsigned int baseVal = srcByte & 0x3F;
@ -1019,12 +1001,12 @@ void initSettings(){
if (vfoA > 35000000l || 3500000l > vfoA) { if (vfoA > 35000000l || 3500000l > vfoA) {
vfoA = 7150000l; vfoA = 7150000l;
vfoA_mode = 2; vfoA_mode = 2; //LSB
} }
if (vfoB > 35000000l || 3500000l > vfoB) { if (vfoB > 35000000l || 3500000l > vfoB) {
vfoB = 14150000l; vfoB = 14150000l;
vfoB_mode = 3; vfoB_mode = 3; //USB
} }
//end of original code section //end of original code section
@ -1100,7 +1082,7 @@ void setup()
//Serial.begin(9600); //Serial.begin(9600);
lcd.begin(16, 2); lcd.begin(16, 2);
printLineF(1, F("CECBT v0.33")); printLineF(1, F("CECBT v0.35"));
Init_Cat(38400, SERIAL_8N1); Init_Cat(38400, SERIAL_8N1);
initMeter(); //not used in this build initMeter(); //not used in this build
@ -1119,7 +1101,7 @@ void setup()
initPorts(); initPorts();
byteToMode(vfoA_mode); byteToMode(vfoA_mode, 0);
initOscillators(); initOscillators();
frequency = vfoA; frequency = vfoA;
@ -1132,13 +1114,11 @@ void setup()
} }
/**
* The loop checks for keydown, ptt, function button and tuning.
*/
//for debug //for debug
int dbgCnt = 0; int dbgCnt = 0;
byte flasher = 0; byte flasher = 0;
//Auto save Frequency and Mode with Protected eeprom life by KD8CEC
void checkAutoSaveFreqMode() void checkAutoSaveFreqMode()
{ {
//when tx or ritOn, disable auto save //when tx or ritOn, disable auto save

View File

@ -17,7 +17,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/ **************************************************************************/
byte line2Buffer[16]; char line2Buffer[16];
//KD8CEC 200Hz ST //KD8CEC 200Hz ST
//L14.150 200Hz ST //L14.150 200Hz ST
//U14.150 +150khz //U14.150 +150khz
@ -53,8 +53,11 @@ void updateLine2Buffer(char isDirectCall)
} }
return; return;
} } //end of ritOn display
//======================================================
//other VFO display
//======================================================
if (vfoActive == VFO_B) if (vfoActive == VFO_B)
{ {
tmpFreq = vfoA; tmpFreq = vfoA;
@ -82,23 +85,23 @@ void updateLine2Buffer(char isDirectCall)
} }
//EXAMPLE #1 //EXAMPLE #1
if ((displayOption1 & 0x04) == 0x00) if ((displayOption1 & 0x04) == 0x00) //none scroll display
line2Buffer[6] = 'k'; line2Buffer[6] = 'k';
else else
{ {
//example #2 //example #2
if (freqScrollPosition++ > 18) if (freqScrollPosition++ > 18) //none scroll display time
{ {
line2Buffer[6] = 'k'; line2Buffer[6] = 'k';
if (freqScrollPosition > 25) if (freqScrollPosition > 25)
freqScrollPosition = -1; freqScrollPosition = -1;
} }
else else //scroll frequency
{ {
line2Buffer[10] = 'H'; line2Buffer[10] = 'H';
line2Buffer[11] = 'z'; line2Buffer[11] = 'z';
if (freqScrollPosition < 7) if (freqScrollPosition < 7)
{ {
for (int i = 11; i >= 0; i--) for (int i = 11; i >= 0; i--)
if (i - (7 - freqScrollPosition) >= 0) if (i - (7 - freqScrollPosition) >= 0)
@ -115,10 +118,10 @@ void updateLine2Buffer(char isDirectCall)
line2Buffer[i] = ' '; line2Buffer[i] = ' ';
} }
} }
} } //scroll
line2Buffer[7] = ' '; line2Buffer[7] = ' ';
} //check direct call by encoder } //check direct call by encoder
if (isIFShift) if (isIFShift)
{ {
@ -152,24 +155,38 @@ void updateLine2Buffer(char isDirectCall)
if (isDirectCall == 1) //if call by encoder (not scheduler), immediate print value if (isDirectCall == 1) //if call by encoder (not scheduler), immediate print value
printLine2(line2Buffer); printLine2(line2Buffer);
} } // end of display IF
else else // step display
{ {
if (isDirectCall != 0) if (isDirectCall != 0)
return; return;
memset(&line2Buffer[8], ' ', 8);
//Step //Step
byte tmpStep = arTuneStep[tuneStepIndex -1]; long tmpStep = arTuneStep[tuneStepIndex -1];
for (int i = 10; i >= 8; i--) {
byte isStepKhz = 0;
if (tmpStep >= 1000)
{
isStepKhz = 2;
}
for (int i = 10; i >= 8 - isStepKhz; i--) {
if (tmpStep > 0) { if (tmpStep > 0) {
line2Buffer[i] = tmpStep % 10 + 0x30; line2Buffer[i + isStepKhz] = tmpStep % 10 + 0x30;
tmpStep /= 10; tmpStep /= 10;
} }
else else
line2Buffer[i] = ' '; line2Buffer[i +isStepKhz] = ' ';
}
//if (isStepKhz == 1)
// line2Buffer[10] = 'k';
if (isStepKhz == 0)
{
line2Buffer[11] = 'H';
line2Buffer[12] = 'z';
} }
line2Buffer[11] = 'H';
line2Buffer[12] = 'z';
line2Buffer[13] = ' '; line2Buffer[13] = ' ';
//if ( //if (
@ -215,6 +232,9 @@ void idle_process()
//space for user graphic display //space for user graphic display
if (menuOn == 0) if (menuOn == 0)
{ {
if ((displayOption1 & 0x10) == 0x10) //always empty topline
return;
//if line2DisplayStatus == 0 <-- this condition is clear Line, you can display any message //if line2DisplayStatus == 0 <-- this condition is clear Line, you can display any message
if (line2DisplayStatus == 0 || (((displayOption1 & 0x04) == 0x04) && line2DisplayStatus == 2)) { if (line2DisplayStatus == 0 || (((displayOption1 & 0x04) == 0x04) && line2DisplayStatus == 2)) {
if (checkCount++ > 1) if (checkCount++ > 1)

View File

@ -13,6 +13,36 @@
#define printLineF1(x) (printLineF(1, x)) #define printLineF1(x) (printLineF(1, x))
#define printLineF2(x) (printLineF(0, x)) #define printLineF2(x) (printLineF(0, x))
void FrequencyToVFO(byte isSaveFreq)
{
//Save Frequency & Mode Information
if (vfoActive == VFO_A)
{
vfoA = frequency;
vfoA_mode = modeToByte();
if (isSaveFreq)
storeFrequencyAndMode(1);
}
else
{
vfoB = frequency;
vfoB_mode = modeToByte();
if (isSaveFreq)
storeFrequencyAndMode(2);
}
}
void menuClearExit(int delayTime)
{
if (delayTime > 0)
delay_background(delayTime, 0);
printLine2ClearAndUpdate();
menuOn = 0;
}
//Ham band move by KD8CEC //Ham band move by KD8CEC
void menuBand(int btn){ void menuBand(int btn){
int knob = 0; int knob = 0;
@ -27,8 +57,7 @@ void menuBand(int btn){
printLineF2(F("Press to confirm")); printLineF2(F("Press to confirm"));
//wait for the button menu select button to be lifted) //wait for the button menu select button to be lifted)
while (btnDown()) { while (btnDown()) {
delay(50); delay_background(50, 0);
Check_Cat(0); //To prevent disconnections
if (btnPressCount++ > 20) { if (btnPressCount++ > 20) {
btnPressCount = 0; btnPressCount = 0;
if (tuneTXType > 0) { //Just toggle 0 <-> 2, if tuneTXType is 100, 100 -> 0 -> 2 if (tuneTXType > 0) { //Just toggle 0 <-> 2, if tuneTXType is 100, 100 -> 0 -> 2
@ -57,23 +86,13 @@ void menuBand(int btn){
} }
} }
delay(50); //delay(50);
ritDisable(); ritDisable();
while(!btnDown()){ while(!btnDown()){
knob = enc_read(); knob = enc_read();
if (knob != 0){ if (knob != 0){
/*
if (band > 3 && knob < 0)
band--;
if (band < 30 && knob > 0)
band++;
if (band > 10)
isUSB = true;
else
isUSB = false;
setFrequency(((unsigned long)band * 1000000l) + offset); */
if (tuneTXType == 2 || tuneTXType == 3 || tuneTXType == 102 || tuneTXType == 103) { //only ham band move if (tuneTXType == 2 || tuneTXType == 3 || tuneTXType == 102 || tuneTXType == 103) { //only ham band move
if (knob < 0) { if (knob < 0) {
if (stepChangeCount-- < -3) { if (stepChangeCount-- < -3) {
@ -87,9 +106,7 @@ void menuBand(int btn){
stepChangeCount = 0; stepChangeCount = 0;
} }
} }
} //end of only ham band move
//setFrequency(frequency + 200000l);
}
else { //original source else { //original source
if (knob < 0 && frequency > 3000000l) if (knob < 0 && frequency > 3000000l)
setFrequency(frequency - 200000l); setFrequency(frequency - 200000l);
@ -105,19 +122,21 @@ void menuBand(int btn){
updateDisplay(); updateDisplay();
} }
delay(20); delay_background(20, 0);
Check_Cat(0); //To prevent disconnections
} }
/*
while(btnDown()) { while(btnDown()) {
delay(50); delay(50);
Check_Cat(0); //To prevent disconnections Check_Cat(0); //To prevent disconnections
} }
*/
delay(50); FrequencyToVFO(1);
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //delay_background(500, 0);
//menuOn = 0;
menuClearExit(500);
} }
//Convert Mode, Number by KD8CEC //Convert Mode, Number by KD8CEC
@ -141,7 +160,9 @@ byte modeToByte(){
} }
//Convert Number to Mode by KD8CEC //Convert Number to Mode by KD8CEC
void byteToMode(byte modeValue){ //autoSetModebyFreq : 0
//autoSetModebyFreq : 1, if (modValue is not set, set mode by frequency)
void byteToMode(byte modeValue, byte autoSetModebyFreq){
if (modeValue == 4) if (modeValue == 4)
cwMode = 1; cwMode = 1;
else if (modeValue == 5) else if (modeValue == 5)
@ -151,11 +172,14 @@ void byteToMode(byte modeValue){
cwMode = 0; cwMode = 0;
if (modeValue == 3) if (modeValue == 3)
isUSB = 1; isUSB = 1;
else if (autoSetModebyFreq == 1 && (modeValue == 0))
isUSB = (frequency > 10000000l) ? true : false;
else else
isUSB = 0; isUSB = 0;
} }
} }
/*
//Convert Number to Mode by KD8CEC //Convert Number to Mode by KD8CEC
void byteWithFreqToMode(byte modeValue){ void byteWithFreqToMode(byte modeValue){
if (modeValue == 4) if (modeValue == 4)
@ -172,99 +196,9 @@ void byteWithFreqToMode(byte modeValue){
isUSB = 0; isUSB = 0;
} }
} }
//VFO Toggle and save VFO Information, modified by KD8CEC
void menuVfoToggle(int btn, char isUseDelayTime)
{
if (!btn){
if (vfoActive == VFO_A)
printLineF2(F("Select VFO B?"));
else
printLineF2(F("Select VFO A?"));
}
else {
if (vfoActive == VFO_B){
vfoB = frequency;
vfoB_mode = modeToByte();
storeFrequencyAndMode(2); //vfoB -> eeprom
vfoActive = VFO_A;
frequency = vfoA;
saveCheckFreq = frequency;
byteToMode(vfoA_mode);
printLineF2(F("Selected VFO A"));
}
else {
vfoA = frequency;
vfoA_mode = modeToByte();
storeFrequencyAndMode(1); //vfoA -> eeprom
vfoActive = VFO_B;
frequency = vfoB;
saveCheckFreq = frequency;
byteToMode(vfoB_mode);
printLineF2(F("Selected VFO B"));
}
ritDisable();
setFrequency(frequency);
if (isUseDelayTime == 1) //Found Issue in wsjt-x Linux 32bit
delay_background(500, 0);
printLine2ClearAndUpdate();
//exit the menu
menuOn = 0;
}
}
void menuRitToggle(int btn){
if (!btn){
if (ritOn == 1)
printLineF2(F("RIT:On, Off?"));
else
printLineF2(F("RIT:Off, On?"));
}
else {
if (ritOn == 0){
printLineF2(F("RIT is ON"));
//enable RIT so the current frequency is used at transmit
ritEnable(frequency);
}
else{
printLineF2(F("RIT is OFF"));
ritDisable();
}
menuOn = 0;
delay_background(500, 0);
printLine2ClearAndUpdate();
}
}
/*
void menuIFSToggle(int btn){
if (!btn){
if (isIFShift == 1)
printLineF2(F("IF Shift:On, Off?"));
else
printLineF2(F("IF Shift:Off, On?"));
}
else {
if (isIFShift == 0){
printLineF2(F("IF Shift is ON"));
isIFShift = 1;
}
else{
printLineF2(F("IF Shift is OFF"));
isIFShift = 0;
}
menuOn = 0;
delay_background(500, 0);
printLine2ClearAndUpdate();
}
}
*/ */
void menuIFSToggle(int btn){
void menuIFSSetup(int btn){
int knob = 0; int knob = 0;
char needApplyChangeValue = 1; char needApplyChangeValue = 1;
@ -275,18 +209,18 @@ void menuIFSToggle(int btn){
printLineF2(F("IF Shift:Off, On?")); printLineF2(F("IF Shift:Off, On?"));
} }
else { else {
if (isIFShift == 0){ //if (isIFShift == 0){
printLineF2(F("IF Shift is ON")); //printLineF2(F("IF Shift is ON"));
delay_background(500, 0); //delay_background(500, 0);
isIFShift = 1; isIFShift = 1;
} //}
delay_background(500, 0); delay_background(500, 0);
updateLine2Buffer(1); updateLine2Buffer(1);
setFrequency(frequency); setFrequency(frequency);
//Off or Change Value //Off or Change Value
while(!btnDown() && digitalRead(PTT) == HIGH){ while(!btnDown() ){
if (needApplyChangeValue ==1) if (needApplyChangeValue ==1)
{ {
updateLine2Buffer(1); updateLine2Buffer(1);
@ -313,7 +247,7 @@ void menuIFSToggle(int btn){
delay_background(500, 0); //for check Long Press function key delay_background(500, 0); //for check Long Press function key
if (btnDown() || digitalRead(PTT) == LOW || ifShiftValue == 0) if (btnDown() || ifShiftValue == 0)
{ {
isIFShift = 0; isIFShift = 0;
printLineF2(F("IF Shift is OFF")); printLineF2(F("IF Shift is OFF"));
@ -321,38 +255,12 @@ void menuIFSToggle(int btn){
delay_background(500, 0); delay_background(500, 0);
} }
menuOn = 0; //menuOn = 0;
//delay_background(500, 0); //printLine2ClearAndUpdate();
printLine2ClearAndUpdate(); menuClearExit(0);
} }
} }
/*
void menuSidebandToggle(int btn){
if (!btn){
if (isUSB == true)
printLineF2(F("Select LSB?"));
else
printLineF2(F("Select USB?"));
}
else {
cwMode = 0;
if (isUSB == true){
isUSB = false;
printLineF2(F("LSB Selected"));
}
else {
isUSB = true;
printLineF2(F("USB Selected"));
}
setFrequency(frequency);
delay_background(500, 0);
printLine2ClearAndUpdate();
menuOn = 0;
}
}
*/
void menuSelectMode(int btn){ void menuSelectMode(int btn){
int knob = 0; int knob = 0;
int selectModeType = 0; int selectModeType = 0;
@ -412,8 +320,7 @@ void menuSelectMode(int btn){
} }
if (beforeMode != selectModeType) { if (beforeMode != selectModeType) {
printLineF1(F("Changed Mode")); //printLineF1(F("Changed Mode"));
if (selectModeType == 0) { if (selectModeType == 0) {
cwMode = 0; isUSB = 0; cwMode = 0; isUSB = 0;
} }
@ -427,19 +334,7 @@ void menuSelectMode(int btn){
cwMode = 2; cwMode = 2;
} }
//Save Frequency & Mode Information FrequencyToVFO(1);
if (vfoActive == VFO_A)
{
vfoA = frequency;
vfoA_mode = modeToByte();
storeFrequencyAndMode(1);
}
else
{
vfoB = frequency;
vfoB_mode = modeToByte();
storeFrequencyAndMode(2);
}
} }
if (cwMode == 0) if (cwMode == 0)
@ -448,73 +343,14 @@ void menuSelectMode(int btn){
si5351bx_setfreq(0, cwmCarrier + (isIFShift ? ifShiftValue : 0)); //set back the carrier oscillator anyway, cw tx switches it off si5351bx_setfreq(0, cwmCarrier + (isIFShift ? ifShiftValue : 0)); //set back the carrier oscillator anyway, cw tx switches it off
setFrequency(frequency); setFrequency(frequency);
delay_background(500, 0);
printLine2ClearAndUpdate();
menuOn = 0;
}
}
void menuSplitOnOff(int btn){ //delay_background(500, 0);
if (!btn){ //printLine2ClearAndUpdate();
if (splitOn == 0) //menuOn = 0;
printLineF2(F("Split On?")); menuClearExit(500);
else
printLineF2(F("Split Off?"));
}
else {
if (splitOn == 1){
splitOn = 0;
printLineF2(F("Split Off!"));
}
else {
splitOn = 1;
if (ritOn == 1)
ritOn = 0;
printLineF2(F("Split On!"));
}
delay_background(500, 0);
printLine2ClearAndUpdate();
menuOn = 0;
} }
} }
/*
//Select CW Key Type by KD8CEC
void menuSetupKeyType(int btn){
if (!btn && digitalRead(PTT) == HIGH){
if (Iambic_Key)
printLineF2(F("Key: Straight?"));
else
printLineF2(F("Key: Fn=A, PTT=B"));
}
else {
if (Iambic_Key)
{
printLineF2(F("Straight Key!"));
Iambic_Key = false;
}
else
{
Iambic_Key = true;
if (btn)
{
keyerControl &= ~IAMBICB;
printLineF2(F("IAMBICA Key!"));
}
else
{
keyerControl |= IAMBICB;
printLineF2(F("IAMBICB Key!"));
}
}
delay_background(500, 0);
printLine2ClearAndUpdate();
menuOn = 0;
}
}
*/
//Select CW Key Type by KD8CEC //Select CW Key Type by KD8CEC
void menuSetupKeyType(int btn){ void menuSetupKeyType(int btn){
int knob = 0; int knob = 0;
@ -572,10 +408,11 @@ void menuSetupKeyType(int btn){
else else
keyerControl |= IAMBICB; keyerControl |= IAMBICB;
} }
delay_background(2000, 0);
//delay_background(2000, 0);
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(1000);
} }
} }
@ -655,10 +492,109 @@ void menuADCMonitor(int btn){
delay_background(200, 0); delay_background(200, 0);
} //end of while } //end of while
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(0);
} }
//VFO Toggle and save VFO Information, modified by KD8CEC
void menuVfoToggle(int btn, char isUseDelayTime)
{
if (!btn){
if (vfoActive == VFO_A)
printLineF2(F("Select VFO B?"));
else
printLineF2(F("Select VFO A?"));
}
else {
FrequencyToVFO(1);
if (vfoActive == VFO_B){
//vfoB = frequency;
//vfoB_mode = modeToByte();
//storeFrequencyAndMode(2); //vfoB -> eeprom
vfoActive = VFO_A;
frequency = vfoA;
saveCheckFreq = frequency;
byteToMode(vfoA_mode, 0);
//printLineF2(F("Selected VFO A"));
}
else {
//vfoA = frequency;
//vfoA_mode = modeToByte();
//storeFrequencyAndMode(1); //vfoA -> eeprom
vfoActive = VFO_B;
frequency = vfoB;
saveCheckFreq = frequency;
byteToMode(vfoB_mode, 0);
//printLineF2(F("Selected VFO B"));
}
ritDisable();
setFrequency(frequency);
//if (isUseDelayTime == 1) //Found Issue in wsjt-x Linux 32bit
// delay_background(500, 0);
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(0);
}
}
void menuRitToggle(int btn){
if (!btn){
if (ritOn == 1)
printLineF2(F("RIT:On, Off?"));
else
printLineF2(F("RIT:Off, On?"));
}
else {
if (ritOn == 0){
printLineF2(F("RIT is ON"));
//enable RIT so the current frequency is used at transmit
ritEnable(frequency);
}
else{
printLineF2(F("RIT is OFF"));
ritDisable();
}
//delay_background(500, 0);
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(500);
}
}
void menuSplitOnOff(int btn){
if (!btn){
if (splitOn == 0)
printLineF2(F("Split On?"));
else
printLineF2(F("Split Off?"));
}
else {
if (splitOn == 1){
splitOn = 0;
printLineF2(F("Split Off!"));
}
else {
splitOn = 1;
if (ritOn == 1)
ritOn = 0;
printLineF2(F("Split On!"));
}
//delay_background(500, 0);
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(500);
}
}
//Function to disbled transmission //Function to disbled transmission
//by KD8CEC //by KD8CEC
void menuTxOnOff(int btn, byte optionType){ void menuTxOnOff(int btn, byte optionType){
@ -677,9 +613,11 @@ void menuTxOnOff(int btn, byte optionType){
isTxType &= ~(optionType); isTxType &= ~(optionType);
printLineF2(F("TX ON!")); printLineF2(F("TX ON!"));
} }
delay_background(500, 0);
printLine2ClearAndUpdate(); //delay_background(500, 0);
menuOn = 0; //printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(500);
} }
} }
@ -702,21 +640,19 @@ void menuSetup(int btn){
modeCalibrate = false; modeCalibrate = false;
printLineF2(F("Setup:Off")); printLineF2(F("Setup:Off"));
} }
delay_background(2000, 0); //delay_background(2000, 0);
printLine2Clear(); //printLine2Clear();
menuOn = 0; //menuOn = 0;
menuClearExit(1000);
} }
} }
void menuExit(int btn){ void menuExit(int btn){
if (!btn){ if (!btn){
printLineF2(F("Exit Menu?")); printLineF2(F("Exit Menu?"));
} }
else{ else
printLine2ClearAndUpdate(); menuClearExit(0);
menuOn = 0;
}
} }
void menuCWSpeed(int btn){ void menuCWSpeed(int btn){
@ -768,10 +704,11 @@ void menuCWSpeed(int btn){
printLineF2(F("CW Speed set!")); printLineF2(F("CW Speed set!"));
cwSpeed = 1200/wpm; cwSpeed = 1200/wpm;
EEPROM.put(CW_SPEED, cwSpeed); EEPROM.put(CW_SPEED, cwSpeed);
delay_background(2000, 0);
//} //}
printLine2ClearAndUpdate(); //delay_background(2000, 0);
menuOn = 0; //printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(1000);
} }
//Builtin CW Keyer Logic by KD8CEC //Builtin CW Keyer Logic by KD8CEC
@ -841,10 +778,11 @@ void menuSetupCwDelay(int btn){
printLineF2(F("CW Delay set!")); printLineF2(F("CW Delay set!"));
cwDelayTime = tmpCWDelay / 10; cwDelayTime = tmpCWDelay / 10;
EEPROM.put(CW_DELAY, cwDelayTime); EEPROM.put(CW_DELAY, cwDelayTime);
delay_background(2000, 0); //delay_background(2000, 0);
//} //}
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(1000);
} }
//CW Time delay by KD8CEC //CW Time delay by KD8CEC
@ -890,10 +828,11 @@ void menuSetupTXCWInterval(int btn){
printLineF2(F("CW Start set!")); printLineF2(F("CW Start set!"));
delayBeforeCWStartTime = tmpTXCWInterval / 2; delayBeforeCWStartTime = tmpTXCWInterval / 2;
EEPROM.put(CW_START, delayBeforeCWStartTime); EEPROM.put(CW_START, delayBeforeCWStartTime);
delay_background(2000, 0); //delay_background(2000, 0);
//} //}
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(1000);
} }
@ -976,7 +915,8 @@ void factoryCalibration(int btn){
while(btnDown()) while(btnDown())
delay(50); delay(50);
delay(100);
menuClearExit(100);
} }
void menuSetupCalibration(int btn){ void menuSetupCalibration(int btn){
@ -1040,8 +980,9 @@ void menuSetupCalibration(int btn){
initOscillators(); initOscillators();
//si5351_set_calibration(calibration); //si5351_set_calibration(calibration);
setFrequency(frequency); setFrequency(frequency);
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(0);
} }
void printCarrierFreq(unsigned long freq){ void printCarrierFreq(unsigned long freq){
@ -1114,8 +1055,9 @@ void menuSetupCarrier(int btn){
si5351bx_setfreq(0, cwmCarrier); //set back the carrier oscillator anyway, cw tx switches it off si5351bx_setfreq(0, cwmCarrier); //set back the carrier oscillator anyway, cw tx switches it off
setFrequency(frequency); setFrequency(frequency);
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(0);
} }
//Append by KD8CEC //Append by KD8CEC
@ -1150,8 +1092,9 @@ void menuSetupCWCarrier(int btn){
si5351bx_setfreq(0, cwmCarrier); si5351bx_setfreq(0, cwmCarrier);
printCarrierFreq(cwmCarrier); printCarrierFreq(cwmCarrier);
Check_Cat(0); //To prevent disconnections //Check_Cat(0); //To prevent disconnections
delay(100); //delay(100);
delay_background(100, 0);
} }
//save the setting //save the setting
@ -1168,10 +1111,12 @@ void menuSetupCWCarrier(int btn){
else else
si5351bx_setfreq(0, cwmCarrier); //set back the carrier oscillator anyway, cw tx switches it off si5351bx_setfreq(0, cwmCarrier); //set back the carrier oscillator anyway, cw tx switches it off
setFrequency(frequency); setFrequency(frequency);
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(0);
} }
//Modified by KD8CEC //Modified by KD8CEC
void menuSetupCwTone(int btn){ void menuSetupCwTone(int btn){
int knob = 0; int knob = 0;
@ -1204,8 +1149,9 @@ void menuSetupCwTone(int btn){
itoa(sideTone, b, 10); itoa(sideTone, b, 10);
printLine2(b); printLine2(b);
delay(100); //delay(100);
Check_Cat(0); //To prevent disconnections //Check_Cat(0); //To prevent disconnections
delay_background(100, 0);
} }
noTone(CW_TONE); noTone(CW_TONE);
//save the setting //save the setting
@ -1217,8 +1163,9 @@ void menuSetupCwTone(int btn){
else else
sideTone = prev_sideTone; sideTone = prev_sideTone;
printLine2ClearAndUpdate(); //printLine2ClearAndUpdate();
menuOn = 0; //menuOn = 0;
menuClearExit(0);
} }
//Lock Dial move by KD8CEC //Lock Dial move by KD8CEC
@ -1256,8 +1203,9 @@ void doMenu(){
//Appened Lines by KD8CEC for Adjust Tune step and Set Dial lock //Appened Lines by KD8CEC for Adjust Tune step and Set Dial lock
while(btnDown()){ while(btnDown()){
delay(50); //delay(50);
Check_Cat(0); //To prevent disconnections //Check_Cat(0); //To prevent disconnections
delay_background(50, 0);
if (btnDownTimeCount++ == (PRESS_ADJUST_TUNE / 50)) { //Set Tune Step if (btnDownTimeCount++ == (PRESS_ADJUST_TUNE / 50)) { //Set Tune Step
printLineF2(F("Set Tune Step?")); printLineF2(F("Set Tune Step?"));
@ -1280,8 +1228,9 @@ void doMenu(){
while (digitalRead(PTT) == HIGH && !btnDown()) while (digitalRead(PTT) == HIGH && !btnDown())
{ {
Check_Cat(0); //To prevent disconnections //Check_Cat(0); //To prevent disconnections
delay(50); //debounce //delay(50); //debounce
delay_background(50, 0);
if (isNeedDisplay) { if (isNeedDisplay) {
strcpy(b, "Tune Step:"); strcpy(b, "Tune Step:");
@ -1348,7 +1297,7 @@ void doMenu(){
else if (select < 40) else if (select < 40)
menuRitToggle(btnState); menuRitToggle(btnState);
else if (select < 50) else if (select < 50)
menuIFSToggle(btnState); menuIFSSetup(btnState);
else if (select < 60) else if (select < 60)
menuCWSpeed(btnState); menuCWSpeed(btnState);
else if (select < 70) else if (select < 70)
@ -1385,9 +1334,8 @@ void doMenu(){
//debounce the button //debounce the button
while(btnDown()){ while(btnDown()){
delay(50); delay_background(50, 0); //To prevent disconnections
Check_Cat(0); //To prevent disconnections
} }
delay(50); //delay(50);
} }

View File

@ -235,7 +235,6 @@ char byteToChar(byte srcByte){
void updateDisplay() { void updateDisplay() {
// tks Jack Purdum W8TEE // tks Jack Purdum W8TEE
// replaced fsprint commmands by str commands for code size reduction // replaced fsprint commmands by str commands for code size reduction
// replace code for Frequency numbering error (alignment, point...) by KD8CEC // replace code for Frequency numbering error (alignment, point...) by KD8CEC
int i; int i;
unsigned long tmpFreq = frequency; // unsigned long tmpFreq = frequency; //