Optimize codes
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
| @@ -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,18 +85,18 @@ 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'; | ||||||
| @@ -115,11 +118,11 @@ 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) | ||||||
|   { |   { | ||||||
|     if (isDirectCall == 1) |     if (isDirectCall == 1) | ||||||
| @@ -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[11] = 'H'; | ||||||
|       line2Buffer[12] = 'z'; |       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) | ||||||
|   | |||||||
| @@ -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 | ||||||
|   } |   } | ||||||
|  | */   | ||||||
|  |   FrequencyToVFO(1); | ||||||
|  |  | ||||||
|   delay(50); |   //printLine2ClearAndUpdate(); | ||||||
|    |   //delay_background(500, 0); | ||||||
|   printLine2ClearAndUpdate(); |   //menuOn = 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(); |     //delay_background(500, 0); | ||||||
|     menuOn = 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; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| //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); |  | ||||||
|  |  | ||||||
|     printLine2ClearAndUpdate(); |     //delay_background(2000, 0); | ||||||
|     menuOn = 0; |     //printLine2ClearAndUpdate(); | ||||||
|  |     //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 | ||||||
| @@ -1169,9 +1112,11 @@ void menuSetupCWCarrier(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); | ||||||
| } | } | ||||||
|  |  | ||||||
| //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); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; // | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user