Iambic Mode funktioniert nicht, zum Prüfen eine ältere Version
auschecken, testen und dann wieder auf diese Version zurück.
Dieser Commit ist enthalten in:
Ursprung
fa91f5c9d1
Commit
da9d6dd4d0
@ -420,6 +420,8 @@ void UpdateDisplay(void)
|
||||
sprintf(line,"%s", IambicA);
|
||||
if(bConfig.KeyerMode == IAMBIC_B)
|
||||
sprintf(line,"%s", IambicB);
|
||||
if(bConfig.KeyerMode == ULTIMATIC)
|
||||
sprintf(line,"%s", Ultimatic);
|
||||
lcd_puts(line);
|
||||
lcd_gotoxy(0,0);
|
||||
if(bConfig.TRX == 1)
|
||||
|
@ -344,7 +344,8 @@ void CheckStraightKey(void)
|
||||
{
|
||||
if(PIND & (1<<STRAIGHT_KEY))
|
||||
{
|
||||
TXKey(0);
|
||||
if(bState.SendStatus == NOTHING)
|
||||
TXKey(0);
|
||||
StateStraightKeyPressed = NO_KEY_PRESSED;
|
||||
} else {
|
||||
if(StateStraightKeyPressed == NO_KEY_PRESSED)
|
||||
@ -354,7 +355,8 @@ void CheckStraightKey(void)
|
||||
}
|
||||
if(StateStraightKeyPressed == KEY_PRESSED)
|
||||
{
|
||||
TXKey(1);
|
||||
if(bState.SendStatus == NOTHING)
|
||||
TXKey(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -441,8 +443,7 @@ void CheckPaddles(void)
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/** \brief CheckDitPaddle
|
||||
*
|
||||
@ -465,7 +466,8 @@ void CheckDitPaddle(void)
|
||||
TimerPaddleKeyPressed = 0;
|
||||
}
|
||||
if(StatePaddleKeyPressed == KEY_PRESSED) // Debounce ok
|
||||
{
|
||||
{
|
||||
SerialWriteString("470:DitBuffer == 1\r\n");
|
||||
DitBuffer = 1;
|
||||
StatePaddleKeyPressed = NO_KEY_PRESSED;
|
||||
}
|
||||
@ -492,8 +494,9 @@ void CheckDahPaddle(void)
|
||||
}
|
||||
if(StatePaddleKeyPressed == KEY_PRESSED) // Debounce ok
|
||||
{
|
||||
SerialWriteString("496:DahBuffer == 1\r\n");
|
||||
DahBuffer = 1;
|
||||
StatePaddleKeyPressed == NO_KEY_PRESSED;
|
||||
StatePaddleKeyPressed = NO_KEY_PRESSED;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -517,17 +520,39 @@ void SymbolLoop(uint8_t Len)
|
||||
t_elementlength = 0; // Reset Timer 0 variable
|
||||
while(t_elementlength < ticks)
|
||||
{
|
||||
if(KeyerMode != ULTIMATIC)
|
||||
{
|
||||
if((KeyerMode == IAMBIC_A) && (!(PIND & (1<<LEFT_PADDLE))) && (!(PIND & (1<<RIGHT_PADDLE))))
|
||||
{
|
||||
IambicFlag = 1;
|
||||
SerialWriteString("526:IambicFlag == 1\r\n");
|
||||
}
|
||||
|
||||
if((KeyerMode == IAMBIC_A) && (!(PIND & (1<<LEFT_PADDLE))) && (!(PIND & (1<<RIGHT_PADDLE))))
|
||||
IambicFlag = 1;
|
||||
|
||||
if(bState.SendStatus == SENDING_DIT)
|
||||
CheckDahPaddle();
|
||||
else if(bState.SendStatus == SENDING_DAH)
|
||||
CheckDitPaddle();
|
||||
else {
|
||||
CheckDahPaddle();
|
||||
CheckDitPaddle();
|
||||
if(bState.SendStatus == SENDING_DIT)
|
||||
{
|
||||
CheckDahPaddle();
|
||||
} else {
|
||||
if(bState.SendStatus == SENDING_DAH)
|
||||
{
|
||||
CheckDitPaddle();
|
||||
} else {
|
||||
CheckDahPaddle();
|
||||
CheckDitPaddle();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(bState.SendStatus == SENDING_DIT)
|
||||
{
|
||||
CheckDahPaddle();
|
||||
} else {
|
||||
if(bState.SendStatus == SENDING_DAH)
|
||||
{
|
||||
CheckDitPaddle();
|
||||
} else {
|
||||
CheckDahPaddle();
|
||||
CheckDitPaddle();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Wenn Taste losgelassen, dann im KeyerMode IAMBIC_A das IambicFlag löschen
|
||||
@ -536,6 +561,7 @@ void SymbolLoop(uint8_t Len)
|
||||
IambicFlag = 0;
|
||||
DitBuffer = 0;
|
||||
DahBuffer = 0;
|
||||
SerialWriteString("562:IambicFlag == 0\r\n");
|
||||
}
|
||||
if((bState.SendStatus == SENDING_DIT) || (bState.SendStatus == SENDING_DAH))
|
||||
{
|
||||
@ -581,7 +607,7 @@ void SendDah(uint8_t SendingType)
|
||||
*/
|
||||
void DitDahBuffers(void)
|
||||
{
|
||||
if((bConfig.KeyerMode == IAMBIC_A) || (bConfig.KeyerMode == IAMBIC_B) || (bConfig.KeyerMode == ULTIMATIC))
|
||||
if((bConfig.KeyerMode == IAMBIC_A) || (bConfig.KeyerMode == IAMBIC_B))
|
||||
{
|
||||
// IAMBIC_A
|
||||
if((bConfig.KeyerMode == IAMBIC_A) && (IambicFlag) && (PIND & (1<<LEFT_PADDLE)) && (PIND & (1<<RIGHT_PADDLE)))
|
||||
@ -589,6 +615,7 @@ void DitDahBuffers(void)
|
||||
IambicFlag = 0;
|
||||
DitBuffer = 0;
|
||||
DahBuffer = 0;
|
||||
SerialWriteString("616:IambicFlag == 0\r\n");
|
||||
} else {
|
||||
// IAMBIC_B
|
||||
if(DitBuffer)
|
||||
@ -603,6 +630,11 @@ void DitDahBuffers(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
if(bConfig.KeyerMode == ULTIMATIC)
|
||||
{
|
||||
SerialWriteString("Ultimatic\r\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -183,7 +183,6 @@ uint8_t LengthOfElement;
|
||||
// State Machines
|
||||
uint8_t PaddleMode;
|
||||
uint8_t KeyerMode;
|
||||
uint8_t state_sidetoneoff;
|
||||
// History
|
||||
uint8_t keyhistory;
|
||||
uint8_t KeyTX;
|
||||
|
@ -306,34 +306,6 @@ ISR(USART_RX_vect)
|
||||
data = UDR0;
|
||||
SerialWriteChar(data);
|
||||
}
|
||||
/*
|
||||
** DoMorse
|
||||
*/
|
||||
void DoMorse(void)
|
||||
{
|
||||
if((KeyerMode == IAMBIC_A) || (KeyerMode == IAMBIC_B) || KeyerMode == ULTIMATIC)
|
||||
{
|
||||
if((KeyerMode == IAMBIC_A) && (IambicFlag) && (ReadKeyPin(LEFT_PADDLE)))
|
||||
{
|
||||
IambicFlag = 0;
|
||||
DitBuffer = 0;
|
||||
DahBuffer = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(DitBuffer)
|
||||
{
|
||||
DitBuffer = 0;
|
||||
SendDit(MAN);
|
||||
}
|
||||
if(DahBuffer)
|
||||
{
|
||||
DahBuffer = 0;
|
||||
SendDah(MAN);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/** @brief Initialisierung bei Reset und Neustart
|
||||
* @param none
|
||||
* @return none
|
||||
@ -395,7 +367,6 @@ int main(void)
|
||||
CheckStraightKey();
|
||||
CheckPaddles();
|
||||
DitDahBuffers();
|
||||
DoMorse();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,20 +18,11 @@ struct State bState;
|
||||
// Function prototypes
|
||||
void Init(void);
|
||||
void InitTimer(void);
|
||||
void ReStart(void);
|
||||
|
||||
void CheckDahPaddle(void);
|
||||
void CheckDitPaddle(void);
|
||||
void CheckPaddle(void);
|
||||
void CheckStraightKey(void);
|
||||
void SendDit(uint8_t SendingType);
|
||||
void SendDah(uint8_t SendingType);
|
||||
void SideToneOff(void);
|
||||
void SideToneOn(void);
|
||||
void TXKey(uint8_t State);
|
||||
void SendChar(uint8_t);
|
||||
void ChangeSpeed(void);
|
||||
void DoMorse(void);
|
||||
|
||||
void SetFrequency(uint16_t f);
|
||||
|
||||
extern void CheckDahPaddle(void);
|
||||
extern void CheckDitPaddle(void);
|
||||
extern void CheckStraightKey(void);
|
||||
extern void SetFrequency(uint16_t f);
|
||||
extern void DitDahBuffers(void);
|
||||
#endif // BJ-KEYER_H_INCLUDED
|
||||
|
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren