Compare commits

...

9 Commits

Author SHA1 Message Date
phdlee
1e9576ddc2 fixed cat with cw key (IA, IB) 2018-02-09 01:11:48 +09:00
phdlee
a7684284d2 write eeprom cycle test and reconvery 2018-02-08 12:45:54 +09:00
phdlee
3b4aaa664c version0.35 2018-02-06 16:13:05 +09:00
phdlee
14888bb7d7 change channel name display code 2018-02-05 16:46:37 +09:00
phdlee
57cd385b8a add vfo to channel, channel to vfo 2018-02-05 15:07:25 +09:00
phdlee
60777178a8 TX Check in auto keysend 2018-02-03 17:07:11 +09:00
phdlee
dd68b38454 Optimize codes 2018-02-03 16:35:27 +09:00
phdlee
d229a10092 change tune step size and fixed bug 2018-02-02 20:49:00 +09:00
phdlee
3d019cdd44 change IF Shift Step 1 -> 50Hz 2018-01-31 17:53:20 +09:00
7 changed files with 533 additions and 424 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

@@ -365,6 +365,11 @@ void controlAutoCW(){
//check interval time, if you want adjust interval between chars, modify below //check interval time, if you want adjust interval between chars, modify below
if (isAutoCWHold == 0 && (millis() - autoCWbeforeTime > cwSpeed * 3)) if (isAutoCWHold == 0 && (millis() - autoCWbeforeTime > cwSpeed * 3))
{ {
if (!inTx){ //if not TX Status, change RX -> TX
keyDown = 0;
startTx(TX_CW, 0); //disable updateDisplay Command for reduce latency time
}
sendCWChar(EEPROM.read(CW_AUTO_DATA + autoCWSendCharIndex++)); sendCWChar(EEPROM.read(CW_AUTO_DATA + autoCWSendCharIndex++));
if (autoCWSendCharIndex > autoCWSendCharEndIndex) { //finish auto cw send if (autoCWSendCharIndex > autoCWSendCharEndIndex) { //finish auto cw send

View File

@@ -160,7 +160,8 @@ int count = 0; //to generally count ticks, loops, etc
#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) #define TUNING_STEP 342 //TUNING STEP * 6 (index 1 + STEPS 5) //1STEP :
//for reduce cw key error, eeprom address //for reduce cw key error, eeprom address
#define CW_ADC_MOST_BIT1 348 //most 2bits of DOT_TO , DOT_FROM, ST_TO, ST_FROM #define CW_ADC_MOST_BIT1 348 //most 2bits of DOT_TO , DOT_FROM, ST_TO, ST_FROM
@@ -179,6 +180,10 @@ int count = 0; //to generally count ticks, loops, etc
#define DISPLAY_OPTION1 361 //Display Option1 #define DISPLAY_OPTION1 361 //Display Option1
#define DISPLAY_OPTION2 362 //Display Option2 #define DISPLAY_OPTION2 362 //Display Option2
#define CHANNEL_FREQ 630 //Channel 1 ~ 20, 1 Channel = 4 bytes
#define CHANNEL_DESC 710 //Channel 1 ~ 20, 1 Channel = 4 bytes
#define RESERVE3 770 //Reserve3 between Channel and Firmware id check
//Check Firmware type and version //Check Firmware type and version
#define FIRMWAR_ID_ADDR 776 //776 : 0x59, 777 :0x58, 778 : 0x68 : Id Number, if not found id, erase eeprom(32~1023) for prevent system error. #define FIRMWAR_ID_ADDR 776 //776 : 0x59, 777 :0x58, 778 : 0x68 : Id Number, if not found id, erase eeprom(32~1023) for prevent system error.
#define VERSION_ADDRESS 779 //check Firmware version #define VERSION_ADDRESS 779 //check Firmware version
@@ -260,7 +265,7 @@ byte sideToneSub = 0;
//DialLock //DialLock
byte isDialLock = 0; //000000[0]vfoB [0]vfoA 0Bit : A, 1Bit : B byte isDialLock = 0; //000000[0]vfoB [0]vfoA 0Bit : A, 1Bit : B
byte isTxType = 0; //000000[0 - isSplit] [0 - isTXStop] byte isTxType = 0; //000000[0 - isSplit] [0 - isTXStop]
byte arTuneStep[5]; long arTuneStep[5];
byte tuneStepIndex; //default Value 0, start Offset is 0 because of check new user byte tuneStepIndex; //default Value 0, start Offset is 0 because of check new user
byte displayOption1 = 0; byte displayOption1 = 0;
@@ -381,7 +386,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) {
@@ -536,12 +541,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);
@@ -596,12 +601,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
@@ -691,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)))
@@ -754,27 +758,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)
{ {
@@ -806,6 +791,22 @@ void storeFrequencyAndMode(byte saveType)
} }
} }
//calculate step size from 1 byte, compatible uBITX Manager, by KD8CEC
unsigned int byteToSteps(byte srcByte) {
byte powerVal = (byte)(srcByte >> 6);
unsigned int baseVal = srcByte & 0x3F;
if (powerVal == 1)
return baseVal * 10;
else if (powerVal == 2)
return baseVal * 100;
else if (powerVal == 3)
return baseVal * 1000;
else
return baseVal;
}
/** /**
* The settings are read from EEPROM. The first time around, the values may not be * The settings are read from EEPROM. The first time around, the values may not be
* present or out of range, in this case, some intelligent defaults are copied into the * present or out of range, in this case, some intelligent defaults are copied into the
@@ -906,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;
@@ -926,8 +927,8 @@ void initSettings(){
findedValidValueCount = 0; findedValidValueCount = 0;
EEPROM.get(TUNING_STEP, tuneStepIndex); EEPROM.get(TUNING_STEP, tuneStepIndex);
for (byte i = 0; i < 5; i++) { for (byte i = 0; i < 5; i++) {
arTuneStep[i] = EEPROM.read(TUNING_STEP + i + 1); arTuneStep[i] = byteToSteps(EEPROM.read(TUNING_STEP + i + 1));
if (arTuneStep[i] >= 1 && arTuneStep[i] < 251) //Maximum 250 for check valid Value if (arTuneStep[i] >= 1 && arTuneStep[i] <= 60000) //Maximum 650 for check valid Value
findedValidValueCount++; findedValidValueCount++;
} }
@@ -1003,12 +1004,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
@@ -1084,7 +1085,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 v1.01"));
Init_Cat(38400, SERIAL_8N1); Init_Cat(38400, SERIAL_8N1);
initMeter(); //not used in this build initMeter(); //not used in this build
@@ -1103,7 +1104,7 @@ void setup()
initPorts(); initPorts();
byteToMode(vfoA_mode); byteToMode(vfoA_mode, 0);
initOscillators(); initOscillators();
frequency = vfoA; frequency = vfoA;
@@ -1116,13 +1117,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
@@ -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

@@ -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 (
@@ -196,6 +213,8 @@ 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)
{ {
if (meterType == 0 || meterType == 1 || meterType == 2)
{
drawMeter(meterValue); //call original source code drawMeter(meterValue); //call original source code
int lineNumber = 0; int lineNumber = 0;
if ((displayOption1 & 0x01) == 0x01) if ((displayOption1 & 0x01) == 0x01)
@@ -205,7 +224,7 @@ void DisplayMeter(byte meterType, byte meterValue, char drawPosition)
for (int i = 0; i < 6; i++) //meter 5 + +db 1 = 6 for (int i = 0; i < 6; i++) //meter 5 + +db 1 = 6
lcd.write(lcdMeter[i]); lcd.write(lcdMeter[i]);
}
} }
byte testValue = 0; byte testValue = 0;
@@ -215,6 +234,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

@@ -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{

File diff suppressed because it is too large Load Diff

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++) {
@@ -235,7 +233,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; //