Merge pull request #20 from phdlee/version1.0

Version1.0
This commit is contained in:
phdlee 2018-02-14 12:10:38 +09:00 committed by GitHub
commit 98e3b41f5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 112 additions and 110 deletions

View File

@ -109,7 +109,8 @@ void CatSetFreq(byte fromType)
//#define BCD_LEN 9 //#define BCD_LEN 9
//PROTOCOL : 0x03 //PROTOCOL : 0x03
//Computer <-(frequency)-> TRCV CAT_BUFF //Computer <-(frequency)-> TRCV CAT_BUFF
void CatGetFreqMode(unsigned long freq, byte fromType) //void CatGetFreqMode(unsigned long freq, byte fromType)
void CatGetFreqMode(unsigned long freq) //for remove warning messages
{ {
int i; int i;
byte tmpValue; byte tmpValue;
@ -149,15 +150,21 @@ void CatGetFreqMode(unsigned long freq, byte fromType)
SendCatData(5); SendCatData(5);
} }
void CatSetSplit(boolean isSplit, byte fromType) //void CatSetSplit(boolean isSplit, byte fromType)
void CatSetSplit(boolean isSplit) //for remove warning messages
{ {
if (isSplit)
splitOn = 1;
else
splitOn = 0;
Serial.write(ACK); Serial.write(ACK);
} }
void CatSetPTT(boolean isPTTOn, byte fromType) void CatSetPTT(boolean isPTTOn, byte fromType)
{ {
if (fromType == 2 || fromType == 3) { //
if ((!inTx) && (fromType == 2 || fromType == 3)) {
Serial.write(ACK); Serial.write(ACK);
return; return;
} }
@ -193,7 +200,7 @@ void CatSetPTT(boolean isPTTOn, byte fromType)
void CatVFOToggle(boolean isSendACK, byte fromType) void CatVFOToggle(boolean isSendACK, byte fromType)
{ {
if (fromType != 2 && fromType != 3) { if (fromType != 2 && fromType != 3) {
menuVfoToggle(1, 0); menuVfoToggle(1);
} }
if (isSendACK) if (isSendACK)
@ -232,7 +239,8 @@ void CatSetMode(byte tmpMode, byte fromType)
} }
//Read EEProm by uBITX Manager Software //Read EEProm by uBITX Manager Software
void ReadEEPRom(byte fromType) //void ReadEEPRom(byte fromType)
void ReadEEPRom() //for remove warnings.
{ {
//5BYTES //5BYTES
//CAT_BUFF[0] [1] [2] [3] [4] //4 COMMAND //CAT_BUFF[0] [1] [2] [3] [4] //4 COMMAND
@ -255,7 +263,8 @@ void ReadEEPRom(byte fromType)
} }
//Write just proecess 1byes //Write just proecess 1byes
void WriteEEPRom(byte fromType) //void WriteEEPRom(byte fromType)
void WriteEEPRom(void) //for remove warning
{ {
//5BYTES //5BYTES
uint16_t eepromStartIndex = CAT_BUFF[0] + CAT_BUFF[1] * 256; uint16_t eepromStartIndex = CAT_BUFF[0] + CAT_BUFF[1] * 256;
@ -275,7 +284,8 @@ void WriteEEPRom(byte fromType)
} }
} }
void ReadEEPRom_FT817(byte fromType) //void ReadEEPRom_FT817(byte fromType)
void ReadEEPRom_FT817(void) //for remove warnings
{ {
byte temp0 = CAT_BUFF[0]; byte temp0 = CAT_BUFF[0];
byte temp1 = CAT_BUFF[1]; byte temp1 = CAT_BUFF[1];
@ -601,7 +611,8 @@ void WriteEEPRom_FT817(byte fromType)
Serial.write(ACK); Serial.write(ACK);
} }
void CatRxStatus(byte fromType) //void CatRxStatus(byte fromType)
void CatRxStatus(void) //for remove warning
{ {
byte sMeterValue = 1; byte sMeterValue = 1;
@ -621,7 +632,8 @@ void CatRxStatus(byte fromType)
} }
void CatTxStatus(byte fromType) //void CatTxStatus(byte fromType)
void CatTxStatus(void) //for remove warning
{ {
boolean isHighSWR = false; boolean isHighSWR = false;
boolean isSplitOn = false; boolean isSplitOn = false;
@ -722,11 +734,11 @@ void Check_Cat(byte fromType)
case 0x02 : //Split On case 0x02 : //Split On
case 0x82: //Split Off case 0x82: //Split Off
CatSetSplit(CAT_BUFF[4] == 0x02, fromType); CatSetSplit(CAT_BUFF[4] == 0x02);
break; break;
case 0x03 : //Read Frequency and mode case 0x03 : //Read Frequency and mode
CatGetFreqMode(frequency, fromType); CatGetFreqMode(frequency);
break; break;
case 0x07 : //Set Operating Mode case 0x07 : //Set Operating Mode
@ -743,24 +755,24 @@ void Check_Cat(byte fromType)
break; break;
case 0xDB: //Read uBITX EEPROM Data case 0xDB: //Read uBITX EEPROM Data
ReadEEPRom(fromType); //Call by uBITX Manager Program ReadEEPRom(); //Call by uBITX Manager Program
break; break;
case 0xBB: //Read FT-817 EEPROM Data (for comfirtable) case 0xBB: //Read FT-817 EEPROM Data (for comfirtable)
ReadEEPRom_FT817(fromType); ReadEEPRom_FT817();
break; break;
case 0xDC: //Write uBITX EEPROM Data case 0xDC: //Write uBITX EEPROM Data
WriteEEPRom(fromType); //Call by uBITX Manager Program WriteEEPRom(); //Call by uBITX Manager Program
break; break;
case 0xBC: //Write FT-817 EEPROM Data (for comfirtable) case 0xBC: //Write FT-817 EEPROM Data (for comfirtable)
WriteEEPRom_FT817(fromType); WriteEEPRom_FT817(fromType);
break; break;
case 0xE7 : //Read RX Status case 0xE7 : //Read RX Status
CatRxStatus(fromType); CatRxStatus();
break; break;
case 0xF7: //Read TX Status case 0xF7: //Read TX Status
CatTxStatus(fromType); CatTxStatus();
break; break;
default: default:
/* /*

View File

@ -156,10 +156,10 @@ int count = 0; //to generally count ticks, loops, etc
#define VFO_B_MODE 257 #define VFO_B_MODE 257
#define CW_DELAY 258 #define CW_DELAY 258
#define CW_START 259 #define CW_START 259
#define HAM_BAND_COUNT 260 // #define HAM_BAND_COUNT 260 //
#define TX_TUNE_TYPE 261 // #define TX_TUNE_TYPE 261 //
#define HAM_BAND_RANGE 262 //FROM (2BYTE) TO (2BYTE) * 10 = 40byte #define HAM_BAND_RANGE 262 //FROM (2BYTE) TO (2BYTE) * 10 = 40byte
#define HAM_BAND_FREQS 302 //40, 1 BAND = 4Byte most bit is mode #define HAM_BAND_FREQS 302 //40, 1 BAND = 4Byte most bit is mode
#define TUNING_STEP 342 //TUNING STEP * 6 (index 1 + STEPS 5) //1STEP : #define TUNING_STEP 342 //TUNING STEP * 6 (index 1 + STEPS 5) //1STEP :
@ -696,7 +696,6 @@ byte lastMovedirection = 0; //0 : stop, 1 : cw, 2 : ccw
void doTuningWithThresHold(){ void doTuningWithThresHold(){
int s = 0; int s = 0;
unsigned long prev_freq; unsigned long prev_freq;
long incdecValue = 0;
if ((vfoActive == VFO_A && ((isDialLock & 0x01) == 0x01)) || if ((vfoActive == VFO_A && ((isDialLock & 0x01) == 0x01)) ||
(vfoActive == VFO_B && ((isDialLock & 0x02) == 0x02))) (vfoActive == VFO_B && ((isDialLock & 0x02) == 0x02)))
@ -908,13 +907,13 @@ void initSettings(){
if ((3 < tuneTXType && tuneTXType < 100) || 103 < tuneTXType || useHamBandCount < 1 || findedValidValueCount < 5) if ((3 < tuneTXType && tuneTXType < 100) || 103 < tuneTXType || useHamBandCount < 1 || findedValidValueCount < 5)
{ {
tuneTXType = 2; tuneTXType = 2;
//if empty band Information, auto insert default region 1 frequency range //if empty band Information, auto insert default region 2 frequency range
//This part is made temporary for people who have difficulty setting up, so can remove it when you run out of memory. //This part is made temporary for people who have difficulty setting up, so can remove it when you run out of memory.
useHamBandCount = 10; useHamBandCount = 10;
hamBandRange[0][0] = 1810; hamBandRange[0][1] = 2000; hamBandRange[0][0] = 1810; hamBandRange[0][1] = 2000;
hamBandRange[1][0] = 3500; hamBandRange[1][1] = 3800; hamBandRange[1][0] = 3500; hamBandRange[1][1] = 3800;
hamBandRange[2][0] = 5351; hamBandRange[2][1] = 5367; hamBandRange[2][0] = 5351; hamBandRange[2][1] = 5367;
hamBandRange[3][0] = 7000; hamBandRange[3][1] = 7300; //region 1 hamBandRange[3][0] = 7000; hamBandRange[3][1] = 7300; //region 2
hamBandRange[4][0] = 10100; hamBandRange[4][1] = 10150; hamBandRange[4][0] = 10100; hamBandRange[4][1] = 10150;
hamBandRange[5][0] = 14000; hamBandRange[5][1] = 14350; hamBandRange[5][0] = 14000; hamBandRange[5][1] = 14350;
hamBandRange[6][0] = 18068; hamBandRange[6][1] = 18168; hamBandRange[6][0] = 18068; hamBandRange[6][1] = 18168;
@ -1086,7 +1085,7 @@ void setup()
//Serial.begin(9600); //Serial.begin(9600);
lcd.begin(16, 2); lcd.begin(16, 2);
printLineF(1, F("CECBT v0.35")); printLineF(1, F("CECBT v1.01"));
Init_Cat(38400, SERIAL_8N1); Init_Cat(38400, SERIAL_8N1);
initMeter(); //not used in this build initMeter(); //not used in this build
@ -1140,6 +1139,7 @@ void checkAutoSaveFreqMode()
//check time for Frequency auto save //check time for Frequency auto save
if (millis() - saveCheckTime > saveIntervalSec * 1000) if (millis() - saveCheckTime > saveIntervalSec * 1000)
{ {
/*
if (vfoActive == VFO_A) if (vfoActive == VFO_A)
{ {
vfoA = frequency; vfoA = frequency;
@ -1152,6 +1152,8 @@ void checkAutoSaveFreqMode()
vfoB_mode = modeToByte(); vfoB_mode = modeToByte();
storeFrequencyAndMode(2); storeFrequencyAndMode(2);
} }
*/
FrequencyToVFO(1);
} }
} }
} }

View File

@ -213,16 +213,18 @@ void updateLine2Buffer(char isDirectCall)
//meterType : 0 = S.Meter, 1 : P.Meter //meterType : 0 = S.Meter, 1 : P.Meter
void DisplayMeter(byte meterType, byte meterValue, char drawPosition) void DisplayMeter(byte meterType, byte meterValue, char drawPosition)
{ {
drawMeter(meterValue); //call original source code if (meterType == 0 || meterType == 1 || meterType == 2)
int lineNumber = 0; {
if ((displayOption1 & 0x01) == 0x01) drawMeter(meterValue); //call original source code
lineNumber = 1; int lineNumber = 0;
if ((displayOption1 & 0x01) == 0x01)
lineNumber = 1;
lcd.setCursor(drawPosition, lineNumber);
lcd.setCursor(drawPosition, lineNumber); for (int i = 0; i < 6; i++) //meter 5 + +db 1 = 6
lcd.write(lcdMeter[i]);
for (int i = 0; i < 6; i++) //meter 5 + +db 1 = 6 }
lcd.write(lcdMeter[i]);
} }
byte testValue = 0; byte testValue = 0;

View File

@ -90,13 +90,13 @@ void cwKeyUp(){
#define PDLSWAP 0x08 // 0 for normal, 1 for swap #define PDLSWAP 0x08 // 0 for normal, 1 for swap
#define IAMBICB 0x10 // 0 for Iambic A, 1 for Iambic B #define IAMBICB 0x10 // 0 for Iambic A, 1 for Iambic B
enum KSTYPE {IDLE, CHK_DIT, CHK_DAH, KEYED_PREP, KEYED, INTER_ELEMENT }; enum KSTYPE {IDLE, CHK_DIT, CHK_DAH, KEYED_PREP, KEYED, INTER_ELEMENT };
static long ktimer; static unsigned long ktimer;
unsigned char keyerState = IDLE; unsigned char keyerState = IDLE;
//Below is a test to reduce the keying error. do not delete lines //Below is a test to reduce the keying error. do not delete lines
//create by KD8CEC for compatible with new CW Logic //create by KD8CEC for compatible with new CW Logic
char update_PaddleLatch(byte isUpdateKeyState) { char update_PaddleLatch(byte isUpdateKeyState) {
unsigned char tmpKeyerControl; unsigned char tmpKeyerControl = 0;
int paddle = analogRead(ANALOG_KEYER); int paddle = analogRead(ANALOG_KEYER);
if (paddle >= cwAdcDashFrom && paddle <= cwAdcDashTo) if (paddle >= cwAdcDashFrom && paddle <= cwAdcDashTo)
@ -126,9 +126,7 @@ char update_PaddleLatch(byte isUpdateKeyState) {
// modified by KD8CEC // modified by KD8CEC
******************************************************************************/ ******************************************************************************/
void cwKeyer(void){ void cwKeyer(void){
byte paddle;
lastPaddle = 0; lastPaddle = 0;
int dot,dash;
bool continue_loop = true; bool continue_loop = true;
unsigned tmpKeyControl = 0; unsigned tmpKeyControl = 0;
@ -206,7 +204,7 @@ void cwKeyer(void){
break; break;
} }
Check_Cat(3); Check_Cat(2);
} //end of while } //end of while
} }
else{ else{

View File

@ -64,7 +64,7 @@ void menuBand(int btn){
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
tuneTXType = 0; tuneTXType = 0;
printLineF2(F("Full range mode")); printLineF2(F("General mode"));
} }
else { else {
tuneTXType = 2; tuneTXType = 2;
@ -289,18 +289,13 @@ void menuSelectMode(int btn){
beforeMode = selectModeType; beforeMode = selectModeType;
while(!btnDown() && digitalRead(PTT) == HIGH){ while(!btnDown()){
//Display Mode Name //Display Mode Name
printLineF1(F("LSB USB CWL CWU")); memset(c, 0, sizeof(c));
if (selectModeType == 0) strcpy(c, " LSB USB CWL CWU");
printLineF1(F("LSB")); c[selectModeType * 4] = '>';
else if (selectModeType == 1) printLine1(c);
printLineF1(F("USB"));
else if (selectModeType == 2)
printLineF1(F("CWL"));
else if (selectModeType == 3)
printLineF1(F("CWU"));
knob = enc_read(); knob = enc_read();
if (knob != 0) if (knob != 0)
@ -320,7 +315,8 @@ void menuSelectMode(int btn){
} }
} }
Check_Cat(0); //To prevent disconnections //Check_Cat(0); //To prevent disconnections
delay_background(50, 0);
} }
if (beforeMode != selectModeType) { if (beforeMode != selectModeType) {
@ -362,16 +358,15 @@ void menuCHMemory(int btn, byte isMemoryToVfo){
int knob = 0; int knob = 0;
int selectChannel = 0; int selectChannel = 0;
byte isDisplayInfo = 1; byte isDisplayInfo = 1;
byte isCancel = 0;
int moveStep = 0; int moveStep = 0;
unsigned long resultFreq, tmpFreq = 0; unsigned long resultFreq, tmpFreq = 0;
byte loadMode = 0; byte loadMode = 0;
if (!btn){ if (!btn){
if (isMemoryToVfo == 1) if (isMemoryToVfo == 1)
printLine2("Channel To VFO?"); printLineF2(F("Channel To VFO?"));
else else
printLine2("VFO To Channel?"); printLineF2(F("VFO To Channel?"));
} }
else { else {
delay_background(500, 0); delay_background(500, 0);
@ -472,7 +467,7 @@ void menuCHMemory(int btn, byte isMemoryToVfo){
else else
{ {
//Save current Frequency to Channel (selectChannel) //Save current Frequency to Channel (selectChannel)
EEPROM.put(CHANNEL_FREQ + 4 * selectChannel, (frequency & 0x1FFFFFFF) | (modeToByte() << 29) ); EEPROM.put(CHANNEL_FREQ + 4 * selectChannel, (frequency & 0x1FFFFFFF) | (((unsigned long)modeToByte()) << 29) );
printLine2("Saved Frequency"); printLine2("Saved Frequency");
} }
} }
@ -491,7 +486,7 @@ void menuSetupKeyType(int btn){
printLineF2(F("Change Key Type?")); printLineF2(F("Change Key Type?"));
} }
else { else {
printLineF2(F("Press to set Key")); //printLineF2(F("Press to set Key")); //for reduce usable flash memory
delay_background(500, 0); delay_background(500, 0);
selectedKeyType = cwKeyType; selectedKeyType = cwKeyType;
@ -539,10 +534,7 @@ void menuSetupKeyType(int btn){
else else
keyerControl |= IAMBICB; keyerControl |= IAMBICB;
} }
//delay_background(2000, 0);
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(1000); menuClearExit(1000);
} }
} }
@ -573,18 +565,11 @@ void menuADCMonitor(int btn){
adcPinA0 = analogRead(A0); //A0(BLACK, EncoderA) adcPinA0 = analogRead(A0); //A0(BLACK, EncoderA)
adcPinA1 = analogRead(A1); //A1(BROWN, EncoderB) adcPinA1 = analogRead(A1); //A1(BROWN, EncoderB)
adcPinA2 = analogRead(A2); //A2(RED, Function Key) adcPinA2 = analogRead(A2); //A2(RED, Function Key)
adcPinA3 = analogRead(A3); //A3(ORANGE, CW Key) adcPinA3 = analogRead(A3); //A3(PTT)
adcPinA6 = analogRead(A6); //A6(BLUE, Ptt) adcPinA6 = analogRead(A6); //A6(KEYER)
adcPinA7 = analogRead(A7); //A7(VIOLET, Spare) adcPinA7 = analogRead(A7); //A7(VIOLET, Spare)
/* if (adcPinA3 < 50) {
sprintf(c, "%4d %4d %4d", adcPinA0, adcPinA1, adcPinA2);
printLine1(c);
sprintf(c, "%4d %4d %4d", adcPinA3, adcPinA6, adcPinA7);
printLine2(c);
*/
if (adcPinA6 < 10) {
if (pressKeyTime == 0) if (pressKeyTime == 0)
pressKeyTime = millis(); pressKeyTime = millis();
else if (pressKeyTime < (millis() - 3000)) else if (pressKeyTime < (millis() - 3000))
@ -623,13 +608,11 @@ void menuADCMonitor(int btn){
delay_background(200, 0); delay_background(200, 0);
} //end of while } //end of while
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(0); menuClearExit(0);
} }
//VFO Toggle and save VFO Information, modified by KD8CEC //VFO Toggle and save VFO Information, modified by KD8CEC
void menuVfoToggle(int btn, char isUseDelayTime) void menuVfoToggle(int btn)
{ {
if (!btn){ if (!btn){
if (vfoActive == VFO_A) if (vfoActive == VFO_A)
@ -649,7 +632,6 @@ void menuVfoToggle(int btn, char isUseDelayTime)
frequency = vfoA; frequency = vfoA;
saveCheckFreq = frequency; saveCheckFreq = frequency;
byteToMode(vfoA_mode, 0); byteToMode(vfoA_mode, 0);
//printLineF2(F("Selected VFO A"));
} }
else { else {
//vfoA = frequency; //vfoA = frequency;
@ -665,16 +647,11 @@ void menuVfoToggle(int btn, char isUseDelayTime)
ritDisable(); ritDisable();
setFrequency(frequency); setFrequency(frequency);
//if (isUseDelayTime == 1) //Found Issue in wsjt-x Linux 32bit
// delay_background(500, 0);
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(0); menuClearExit(0);
} }
} }
//modified for reduce used flash memory by KD8CEC
void menuRitToggle(int btn){ void menuRitToggle(int btn){
if (!btn){ if (!btn){
if (ritOn == 1) if (ritOn == 1)
@ -692,9 +669,7 @@ void menuRitToggle(int btn){
printLineF2(F("RIT is OFF")); printLineF2(F("RIT is OFF"));
ritDisable(); ritDisable();
} }
//delay_background(500, 0);
//printLine2ClearAndUpdate();
//menuOn = 0;
menuClearExit(500); menuClearExit(500);
} }
} }
@ -764,14 +739,18 @@ void menuSetup(int btn){
else else
printLineF2(F("Setup Off?")); printLineF2(F("Setup Off?"));
}else { }else {
modeCalibrate = ! modeCalibrate;
/*
if (!modeCalibrate){ if (!modeCalibrate){
modeCalibrate = true; modeCalibrate = true;
printLineF2(F("Setup:On")); //printLineF2(F("Setup:On"));
} }
else { else {
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;
@ -802,14 +781,14 @@ void menuCWSpeed(int btn){
return; return;
} }
printLineF1(F("Press to set WPm")); printLineF1(F("Press to set WPM"));
strcpy(b, "WPM:"); strcpy(b, "WPM:");
itoa(wpm,c, 10); itoa(wpm,c, 10);
strcat(b, c); strcat(b, c);
printLine2(b); printLine2(b);
delay_background(300, 0); delay_background(300, 0);
while(!btnDown() && digitalRead(PTT) == HIGH){ while(!btnDown()){
knob = enc_read(); knob = enc_read();
if (knob != 0){ if (knob != 0){
@ -873,8 +852,7 @@ void menuSetupCwDelay(int btn){
int tmpCWDelay = cwDelayTime * 10; int tmpCWDelay = cwDelayTime * 10;
if (!btn){ if (!btn){
strcpy(b, "CW TX->RX Delay"); printLineF2(F("CW TX->RX Delay"));
printLine2(b);
return; return;
} }
@ -885,7 +863,7 @@ void menuSetupCwDelay(int btn){
printLine2(b); printLine2(b);
delay_background(300, 0); delay_background(300, 0);
while(!btnDown() && digitalRead(PTT) == HIGH){ while(!btnDown()){
knob = enc_read(); knob = enc_read();
if (knob != 0){ if (knob != 0){
if (tmpCWDelay > 3 && knob < 0) if (tmpCWDelay > 3 && knob < 0)
@ -919,34 +897,47 @@ void menuSetupCwDelay(int btn){
//CW Time delay by KD8CEC //CW Time delay by KD8CEC
void menuSetupTXCWInterval(int btn){ void menuSetupTXCWInterval(int btn){
char needDisplayInformation = 1;
int knob = 0; int knob = 0;
int tmpTXCWInterval = delayBeforeCWStartTime * 2; int tmpTXCWInterval = delayBeforeCWStartTime * 2;
if (!btn){ if (!btn){
strcpy(b, "CW Start Delay"); printLineF2(F("CW Start Delay"));
printLine2(b);
return; return;
} }
printLineF1(F("Press, set Delay")); printLineF1(F("Press, set Delay"));
/*
strcpy(b, "Start Delay:"); strcpy(b, "Start Delay:");
itoa(tmpTXCWInterval,c, 10); itoa(tmpTXCWInterval,c, 10);
strcat(b, c); strcat(b, c);
printLine2(b); printLine2(b);
*/
delay_background(300, 0); delay_background(300, 0);
while(!btnDown() && digitalRead(PTT) == HIGH){ while(!btnDown()){
if (needDisplayInformation == 1) {
strcpy(b, "Start Delay:");
itoa(tmpTXCWInterval,c, 10);
strcat(b, c);
printLine2(b);
needDisplayInformation = 0;
}
knob = enc_read(); knob = enc_read();
if (knob != 0){ if (knob != 0){
if (tmpTXCWInterval > 0 && knob < 0) if (tmpTXCWInterval > 0 && knob < 0)
tmpTXCWInterval -= 2; tmpTXCWInterval -= 2;
if (tmpTXCWInterval < 500 && knob > 0) if (tmpTXCWInterval < 500 && knob > 0)
tmpTXCWInterval += 2; tmpTXCWInterval += 2;
/*
strcpy(b, "Start Delay:"); strcpy(b, "Start Delay:");
itoa(tmpTXCWInterval,c, 10); itoa(tmpTXCWInterval,c, 10);
strcat(b, c); strcat(b, c);
printLine2(b); printLine2(b);
*/
needDisplayInformation = 1;
} }
//abort if this button is down //abort if this button is down
if (btnDown()) if (btnDown())
@ -1281,8 +1272,6 @@ void menuSetupCwTone(int btn){
itoa(sideTone, b, 10); itoa(sideTone, b, 10);
printLine2(b); printLine2(b);
//delay(100);
//Check_Cat(0); //To prevent disconnections
delay_background(100, 0); delay_background(100, 0);
} }
noTone(CW_TONE); noTone(CW_TONE);
@ -1308,20 +1297,23 @@ void setDialLock(byte tmpLock, byte fromMode) {
isDialLock &= ~(vfoActive == VFO_A ? 0x01 : 0x02); isDialLock &= ~(vfoActive == VFO_A ? 0x01 : 0x02);
if (fromMode == 2 || fromMode == 3) return; if (fromMode == 2 || fromMode == 3) return;
//for reduce using flash memory
/*
if (tmpLock == 1) if (tmpLock == 1)
printLineF2(F("Dial Lock ON")); printLineF2(F("Dial Lock ON"));
else else
printLineF2(F("Dial Lock OFF")); printLineF2(F("Dial Lock OFF"));
*/
delay_background(1000, 0); delay_background(1000, 0);
printLine2ClearAndUpdate(); printLine2ClearAndUpdate();
} }
unsigned int btnDownTimeCount; byte btnDownTimeCount;
#define PRESS_ADJUST_TUNE 1000 #define PRESS_ADJUST_TUNE 20 //1000msec 20 * 50 = 1000milisec
#define PRESS_LOCK_CONTROL 2000 #define PRESS_LOCK_CONTROL 40 //2000msec 40 * 50 = 2000milisec
//Modified by KD8CEC //Modified by KD8CEC
void doMenu(){ void doMenu(){
@ -1335,14 +1327,12 @@ 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);
//Check_Cat(0); //To prevent disconnections
delay_background(50, 0); delay_background(50, 0);
if (btnDownTimeCount++ == (PRESS_ADJUST_TUNE / 50)) { //Set Tune Step if (btnDownTimeCount++ == (PRESS_ADJUST_TUNE)) { //Set Tune Step
printLineF2(F("Set Tune Step?")); printLineF2(F("Set Tune Step?"));
} }
else if (btnDownTimeCount > (PRESS_LOCK_CONTROL / 50)) { //check long time Down Button -> 2.5 Second => Lock else if (btnDownTimeCount > (PRESS_LOCK_CONTROL)) { //check long time Down Button -> 2.5 Second => Lock
if (vfoActive == VFO_A) if (vfoActive == VFO_A)
setDialLock((isDialLock & 0x01) == 0x01 ? 0 : 1, 0); //Reverse Dial lock setDialLock((isDialLock & 0x01) == 0x01 ? 0 : 1, 0); //Reverse Dial lock
else else
@ -1353,12 +1343,12 @@ void doMenu(){
delay(50); //debounce delay(50); //debounce
//ADJUST TUNE STEP //ADJUST TUNE STEP
if (btnDownTimeCount > (PRESS_ADJUST_TUNE / 50)) if (btnDownTimeCount > PRESS_ADJUST_TUNE)
{ {
printLineF1(F("Press to set step")); printLineF1(F("Press to set step"));
isNeedDisplay = 1; //check to need display for display current value isNeedDisplay = 1; //check to need display for display current value
while (digitalRead(PTT) == HIGH && !btnDown()) while (!btnDown())
{ {
//Check_Cat(0); //To prevent disconnections //Check_Cat(0); //To prevent disconnections
//delay(50); //debounce //delay(50); //debounce
@ -1422,7 +1412,7 @@ void doMenu(){
else if (select < 10) else if (select < 10)
menuBand(btnState); menuBand(btnState);
else if (select < 20) else if (select < 20)
menuVfoToggle(btnState, 1); menuVfoToggle(btnState);
else if (select < 30) else if (select < 30)
menuSelectMode(btnState); menuSelectMode(btnState);
else if (select < 40) else if (select < 40)

View File

@ -99,8 +99,6 @@ void initMeter(){
//0 ~ 25 : 30 over : + 10 //0 ~ 25 : 30 over : + 10
void drawMeter(int needle) { void drawMeter(int needle) {
//5Char + O over //5Char + O over
int drawCharLength = needle / 5;
int drawCharLengthLast = needle % 5;
int i; int i;
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {