Cleaned up te code a little for the non-analog keyer. Needs to be tested.
This commit is contained in:
parent
89af919e42
commit
295b158662
@ -223,8 +223,9 @@ extern byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
||||
#define ANALOG_SMETER (A7) //by KD8CEC
|
||||
|
||||
#ifdef USE_ALTKEYER
|
||||
#define DIGITAL_DOT (11)
|
||||
#define DIGITAL_DASH (12)
|
||||
#define DIGITAL_DOT (12)
|
||||
#define DIGITAL_DASH (11)
|
||||
#define DIGITAL_KEY (A3)
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -1295,6 +1295,7 @@ void initPorts(){
|
||||
#ifdef USE_ALTKEYER
|
||||
pinMode(DIGITAL_DOT, INPUT_PULLUP);
|
||||
pinMode(DIGITAL_DASH, INPUT_PULLUP);
|
||||
if (DIGITAL_KEY != PTT) pinMode(DIGITAL_KEY, INPUT_PULLUP);
|
||||
#endif
|
||||
|
||||
#ifdef USE_CUSTOM_LPF_FILTER
|
||||
@ -1466,14 +1467,14 @@ void checkAutoSaveFreqMode()
|
||||
void loop(){
|
||||
if (isCWAutoMode == 0){ //when CW AutoKey Mode, disable this process
|
||||
#ifdef USE_ALTKEYER
|
||||
// when using the alternate keyer, don't check the PTT if we're in CW mode, because
|
||||
// the PTT is also a straight key
|
||||
if (!txCAT && (cwMode == 0))
|
||||
checkPTT();
|
||||
#else
|
||||
// when using the alternate keyer, don't check the PTT if we're in CW mode--assuming the pin is the same as PTT
|
||||
if (DIGITAL_KEY == PTT) {
|
||||
if (!txCAT && (cwMode == 0))
|
||||
checkPTT();
|
||||
} else
|
||||
#endif
|
||||
if (!txCAT)
|
||||
checkPTT();
|
||||
#endif
|
||||
checkButton();
|
||||
}
|
||||
else
|
||||
|
@ -38,21 +38,20 @@
|
||||
char lastPaddle = 0;
|
||||
|
||||
//reads the analog keyer pin and reports the paddle
|
||||
byte getPaddle(){
|
||||
byte getPaddle() {
|
||||
#ifdef USE_ALTKEYER
|
||||
// Alternate keyer... but it looks like getPaddle() ever actually gets used, so...
|
||||
if (cwMode > 0) {
|
||||
// PTT functions as straight key, but only if we're in CW mode
|
||||
if (digitalRead(PTT) == LOW) {
|
||||
// Alternate keyer
|
||||
if ((DIGITAL_KEY != PTT) || ((DIGITAL_KEY == PTT) && (cwMode > 0))) {
|
||||
if (digitalRead(DIGITAL_KEY) == LOW) {
|
||||
return PADDLE_STRAIGHT;
|
||||
}
|
||||
} else {
|
||||
// paddles work whether or not CW mode is actually selected
|
||||
int rv = 0;
|
||||
rv |= digitalRead(DIGITAL_DOT) == LOW ? 1 : 0;
|
||||
rv |= digitalRead(DIGITAL_DASH) == LOW ? 2 : 0;
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
// paddles work whether or not CW mode is actually selected
|
||||
int rv = 0;
|
||||
rv |= digitalRead(DIGITAL_DOT) == LOW ? PADDLE_DOT : 0;
|
||||
rv |= digitalRead(DIGITAL_DASH) == LOW ? PADDLE_DASH : 0;
|
||||
return rv;
|
||||
|
||||
#else
|
||||
int paddle = analogRead(ANALOG_KEYER);
|
||||
|
||||
@ -117,12 +116,14 @@ char update_PaddleLatch(byte isUpdateKeyState) {
|
||||
#ifdef USE_ALTKEYER
|
||||
// One big note... I have no idea how debounce does or doesn't affect this... but there is no debounce right now. It's conceivable
|
||||
// that the normal uBITX use of an analog input for this masks bouncing...
|
||||
if (digitalRead(DIGITAL_DOT) == LOW) tmpKeyerControl |= DIT_L;
|
||||
if ((digitalRead(DIGITAL_DASH) == LOW)) tmpKeyerControl |= DAH_L;
|
||||
if (Iambic_Key) {
|
||||
if ((digitalRead(DIGITAL_DASH) == LOW)) tmpKeyerControl |= DAH_L;
|
||||
if (digitalRead(DIGITAL_DOT) == LOW) tmpKeyerControl |= DIT_L;
|
||||
} else {
|
||||
// I really would like to have the PTT (during CW mode) just result in key down regardless of Iambic, but this doesn't do that yet...
|
||||
if ((cwMode > 0) && (digitalRead(PTT) == LOW)) tmpKeyerControl |= DIT_L;
|
||||
if ((DIGITAL_KEY != PTT) || ((DIGITAL_KEY == PTT) && (cwMode > 0))) {
|
||||
if (digitalRead(DIGITAL_KEY) == LOW) tmpKeyerControl |= DAH_L;
|
||||
}
|
||||
}
|
||||
#else
|
||||
int paddle = analogRead(ANALOG_KEYER);
|
||||
@ -252,10 +253,9 @@ void cwKeyer(void){
|
||||
|
||||
Check_Cat(2);
|
||||
} //end of while
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
while(1){
|
||||
if (update_PaddleLatch(0) == DIT_L) {
|
||||
if (update_PaddleLatch(0) == DAH_L) {
|
||||
// if we are here, it is only because the key is pressed
|
||||
if (!inTx){
|
||||
//DelayTime Option
|
||||
@ -267,7 +267,7 @@ void cwKeyer(void){
|
||||
}
|
||||
cwKeydown();
|
||||
|
||||
while ( update_PaddleLatch(0) == DIT_L )
|
||||
while ( update_PaddleLatch(0) == DAH_L )
|
||||
delay_background(1, 3);
|
||||
|
||||
cwKeyUp();
|
||||
|
Loading…
Reference in New Issue
Block a user