BJ-Keyer  1.03
Morsekeyer für 2 TRX und 6 Morsetasten
functions.c-Dateireferenz

Diverse Funktionen. Mehr ...

#include "functions.h"
Include-Abhängigkeitsdiagramm für functions.c:

Funktionen

void DelayMilliSeconds (uint16_t ms)
 Zeitschleife von 1-65535 Millisekunden. Mehr ...
 
uint16_t GetMilliSeconds (void)
 Zählerwert für Zeitschleifen auslesen. Mehr ...
 
void ResetMilliSeconds (void)
 Setzt den Millisekundenzähler für Zeitschleifen auf 0. Mehr ...
 
void IntEnable (void)
 Register wieder herstellen und Interrupts erlauben. Mehr ...
 
void IntDisable (void)
 Register sichern und Interrupts verbieten. Mehr ...
 
void WriteEEprom (void)
 Akt. Einstellungen in EEPROM schreiben. Mehr ...
 
void ReadEEpromWpM (void)
 Gespeicherte Einstellung für die Geschwindigkeit aus EEprom lesen. Mehr ...
 
void WriteEEpromWpM (void)
 Akt. Einstellung für die Geschwindigkeit in EEprom schreiben. Mehr ...
 
void SetEEprom (void)
 Standardeinstellungen (bei neuem Controller) Mehr ...
 
void ReadEEprom (void)
 Einstellungen aus dem EEprom lesen. Mehr ...
 
void SerialWriteChar (unsigned char data)
 Ein Zeichen über serielle Schnittstelle ausgeben. Mehr ...
 
void SerialWriteString (char *s)
 
void SidetoneOn (void)
 Mithörton einschalten. Mehr ...
 
void SidetoneOff (void)
 Mithörton ausschalten. Mehr ...
 
void SidetoneDisable (void)
 Audioverstärker abschalten. Mehr ...
 
void SidetoneEnable (void)
 Audioverstärker einschalten. Mehr ...
 
void TXKey (uint8_t State)
 Gibt ein Symbol aus. Mehr ...
 
void CheckButtons (void)
 Fragt die Taster ab und löst entsprechende Funktion aus. Mehr ...
 
void CheckStraightKey (void)
 Fragt die Handtasteneingänge ab und gibt das entsprechende Symbol aus. Bei der Handtaste findet über einen Timer eine Entprellung statt. Mehr ...
 
void CheckPaddles (void)
 Diese Funktion prüft, ob ein Paddle betätigt wurde. Mehr ...
 
void CheckDitPaddle (void)
 Prüfen, ob das Punkt Paddle betätigt wurde. Mehr ...
 
void CheckDahPaddle (void)
 Prüfen, ob das Strich Paddle betätigt wurde. Mehr ...
 
void SetRatio (void)
 Berechnung der Zeitdauer für Punkt und Strich. Mehr ...
 
void SetWeight (void)
 
void SendSymbol (uint8_t Dit)
 Symbol senden. Mehr ...
 
void SendDit (void)
 Gibt einen Punkt aus. Mehr ...
 
void SendDah (void)
 Gibt einen Strich aus. Mehr ...
 
void SendIambic (void)
 Wenn beide Paddle betätigt sind, wird alternierend ein Punkt und Strich ausgegeben. Mehr ...
 
void SetFrequency (uint16_t f)
 Verändert die Frequenz des Mithörtons. Mehr ...
 
void Tone (uint16_t f, uint8_t duration)
 Ausgabe eines Tons mit Dauer und Frequenz. Mehr ...
 
void Boop (void)
 Boop Ton ausgeben. Mehr ...
 
void Beep (void)
 Beep Ton ausgeben. Mehr ...
 
void BeepBoop (void)
 BeepBoop Doppelton ausgeben. Mehr ...
 
void SendString (char *s)
 Gibt eine Zeichenkette als Morsecode aus. Mehr ...
 
void SendChar (unsigned char c)
 Gibt ein Zeichen aus. Mehr ...
 

Variablen

uint8_t Dummy
 
uint8_t ee_Dummy = 0x55
 Dummy for Address 0. Mehr ...
 
uint8_t ee_Trx1 = 0
 TRX 1. Mehr ...
 
uint8_t ee_Trx2 = 0
 TRX 2. Mehr ...
 
uint8_t ee_KeyerMode = 1
 Iambic A, Iambic B oder Ultimatic. Mehr ...
 
uint8_t ee_SidetoneEnabled = 1
 Mithörton eingeschaltet. Mehr ...
 
uint8_t ee_WpMBpM = 0
 WpM oder BpM Anzeige. Mehr ...
 
uint8_t ee_Reverse = 0
 linkes/rechtes Paddle vertauschen Mehr ...
 
uint8_t ee_MemButtonMode = 0
 Funktion des ersten Tasters (MEM5) Mehr ...
 
uint8_t ee_Ratio = 30
 Punkt/Strich Verhältnis 1:3. Mehr ...
 
uint8_t ee_Weight = 50
 Punkt/Strich Gewichtung. Mehr ...
 
uint8_t ee_Memory = 0
 Punkt/Strich Speicher. Mehr ...
 
uint16_t ee_SidetoneFreq = 600
 Frequenz des Mithörtons. Mehr ...
 
uint8_t ee_WpM = 12
 Geschwindigkeit WpM. Mehr ...
 
uint8_t ee_RiseTime = 5
 Anstiegszeit Sinuston. Mehr ...
 
uint8_t ee_RiseTimeCounter = 5
 Anzahl Sinusschwingungen für den Anstieg. Mehr ...
 
uint8_t ee_DebounceTime = 6
 Entprellzeit für Straight Key Eingang. Mehr ...
 

Ausführliche Beschreibung

Diverse Funktionen.

Dokumentation der Funktionen

◆ Beep()

void Beep ( void  )

Beep Ton ausgeben.

Parameter
none
Rückgabewerte
none

◆ BeepBoop()

void BeepBoop ( void  )

BeepBoop Doppelton ausgeben.

Parameter
none
Rückgabewerte
none

◆ Boop()

void Boop ( void  )

Boop Ton ausgeben.

Parameter
none
Rückgabewerte
none

◆ CheckButtons()

void CheckButtons ( void  )

Fragt die Taster ab und löst entsprechende Funktion aus.

Parameter
none
Rückgabewerte
none

◆ CheckDahPaddle()

void CheckDahPaddle ( void  )

Prüfen, ob das Strich Paddle betätigt wurde.

    Ist dies der Fall, wird das Statusbit gesetzt. Wurde in den 
    Einstellungen der Reverse Mode aktiviert, werden in der 
    Abfrage die Paddle vertauscht.
Parameter
none
Rückgabewerte
none

◆ CheckDitPaddle()

void CheckDitPaddle ( void  )

Prüfen, ob das Punkt Paddle betätigt wurde.

    Ist dies der Fall, wird das Statusbit gesetzt.Wurde in den 
    Einstellungen der Reverse Mode aktiviert, werden in der 
    Abfrage die Paddle vertauscht.
Parameter
none
Rückgabewerte
none

◆ CheckPaddles()

void CheckPaddles ( void  )

Diese Funktion prüft, ob ein Paddle betätigt wurde.

    Wenn dies der Fall war, ist das jeweilige Statusbit gesetzt
    und die Funktion für die Ausgabe des entsprechenden Symbols
    wird aufgerufen.
Parameter
none
Rückgabewerte
none

◆ CheckStraightKey()

void CheckStraightKey ( void  )

Fragt die Handtasteneingänge ab und gibt das entsprechende Symbol aus. Bei der Handtaste findet über einen Timer eine Entprellung statt.

Parameter
none
Rückgabewerte
none

◆ DelayMilliSeconds()

void DelayMilliSeconds ( uint16_t  ms)

Zeitschleife von 1-65535 Millisekunden.

Parameter
msAnzahl Millisekunden
Rückgabewerte
none

◆ GetMilliSeconds()

uint16_t GetMilliSeconds ( void  )

Zählerwert für Zeitschleifen auslesen.

Parameter
none
Rückgabewerte
Millisekunden

◆ IntDisable()

void IntDisable ( void  )

Register sichern und Interrupts verbieten.

Parameter
none
Rückgabewerte
none

◆ IntEnable()

void IntEnable ( void  )

Register wieder herstellen und Interrupts erlauben.

Parameter
none
Rückgabewerte
none

◆ ReadEEprom()

void ReadEEprom ( void  )

Einstellungen aus dem EEprom lesen.

Parameter
none
Rückgabewerte
none

◆ ReadEEpromWpM()

void ReadEEpromWpM ( void  )

Gespeicherte Einstellung für die Geschwindigkeit aus EEprom lesen.

Parameter
none
Rückgabewerte
none

◆ ResetMilliSeconds()

void ResetMilliSeconds ( void  )

Setzt den Millisekundenzähler für Zeitschleifen auf 0.

Parameter
none
Rückgabewerte
none

◆ SendChar()

void SendChar ( unsigned char  c)

Gibt ein Zeichen aus.

    Mit dieser Symboltabelle werden die Zeichen
    der Textspeicher gesendet
Parameter
cZeichen, das Ausgegeben wird
Rückgabewerte
none

◆ SendDah()

void SendDah ( void  )

Gibt einen Strich aus.

Parameter
none
Rückgabewerte
none

◆ SendDit()

void SendDit ( void  )

Gibt einen Punkt aus.

Parameter
none
Rückgabewerte
none

◆ SendIambic()

void SendIambic ( void  )

Wenn beide Paddle betätigt sind, wird alternierend ein Punkt und Strich ausgegeben.

Beim Iambic B Mode und Ultimatic Mode wird gegebenenfalls noch ein gegensätzliches Zeichen des zuletzt betätigten Paddle angefügt. Erläuterung und Timing siehe Dokumentation.

Parameter
none
Rückgabewerte
none

◆ SendString()

void SendString ( char *  s)

Gibt eine Zeichenkette als Morsecode aus.

    Wenn die Zeichenkette ein Leerzeichen enthält, wird dieses als Pause 
    zwischen zwei Wörtern interpretiert und eine Pause der Länge von 7
    Dits (in Abhängigkeit der eingestellten Geschwindigkeit) wird eingefügt
    Zwischen einzelnen Zeichen wird eine Pause von 3 Dits eingefügt
Noch zu erledigen:
Für die Zeichenausgabe der Textspeicher könnte hier noch die Beachtung des eingestellten Ratios und der Gewichtung zugefügt werden.
Parameter
sZeiger auf die Zeichenkette
Rückgabewerte
none

◆ SendSymbol()

void SendSymbol ( uint8_t  Dit)

Symbol senden.

Parameter
Dit= 1, wenn Symbol ein Punkt ist
Rückgabewerte
none

◆ SerialWriteChar()

void SerialWriteChar ( unsigned char  data)

Ein Zeichen über serielle Schnittstelle ausgeben.

Parameter
dataZeichen, das seriell ausgegeben wird
Rückgabewerte
none

◆ SetEEprom()

void SetEEprom ( void  )

Standardeinstellungen (bei neuem Controller)

    Wird ein neuer Controller verwendet, gibt es keine 
    Einstellungswerte im EEprom. Diese Funktion schreibt
    die initialen Werte in das EEprom. Wird sehr selten
    benötigt ;-)
Parameter
none
Rückgabewerte
none

◆ SetFrequency()

void SetFrequency ( uint16_t  f)

Verändert die Frequenz des Mithörtons.

    Durch die Anpassung des Timers 1 für das 
    Laden der Werte der Sinuskurve wird die 
    Tonhöhe des Mithörtons verändert.
Parameter
fFrequenz des Mithörtons in Hz
Rückgabewerte
none

◆ SetRatio()

void SetRatio ( void  )

Berechnung der Zeitdauer für Punkt und Strich.

    Die Länge eines Symbols ist abhängig von der
    eingestellten Geschwindigkeit. Intern wird immer
    mit Wörtern pro Minute gerechnet. Das normale
    Punkt/Strich Verhältnis ist 1:3. Dies kann durch
    den Parameter Ratio in den Einstellungen verändert
    werden.
Parameter
none
Rückgabewerte
none

◆ SidetoneDisable()

void SidetoneDisable ( void  )

Audioverstärker abschalten.

Parameter
none
Rückgabewerte
none

◆ SidetoneEnable()

void SidetoneEnable ( void  )

Audioverstärker einschalten.

Parameter
none
Rückgabewerte
none

◆ SidetoneOff()

void SidetoneOff ( void  )

Mithörton ausschalten.

Parameter
none
Rückgabewerte
none

◆ SidetoneOn()

void SidetoneOn ( void  )

Mithörton einschalten.

Parameter
none
Rückgabewerte
none

◆ Tone()

void Tone ( uint16_t  f,
uint8_t  duration 
)

Ausgabe eines Tons mit Dauer und Frequenz.

Parameter
fFrequenz des Tons
durationDauer des Tons
Rückgabewerte
none

◆ TXKey()

void TXKey ( uint8_t  State)

Gibt ein Symbol aus.

    Je nach Einstellung wird ein oder beide Transceiver
    getastet oder nur der Mithörton ausgegeben.
Parameter
StateBitfeld für Transceiver und Tonausgabe
Rückgabewerte
none

◆ WriteEEprom()

void WriteEEprom ( void  )

Akt. Einstellungen in EEPROM schreiben.

Parameter
none
Rückgabewerte
none

◆ WriteEEpromWpM()

void WriteEEpromWpM ( void  )

Akt. Einstellung für die Geschwindigkeit in EEprom schreiben.

Parameter
none
Rückgabewerte
none

Variablen-Dokumentation

◆ ee_DebounceTime

uint8_t ee_DebounceTime = 6

Entprellzeit für Straight Key Eingang.

◆ ee_Dummy

uint8_t ee_Dummy = 0x55

Dummy for Address 0.

◆ ee_KeyerMode

uint8_t ee_KeyerMode = 1

Iambic A, Iambic B oder Ultimatic.

◆ ee_MemButtonMode

uint8_t ee_MemButtonMode = 0

Funktion des ersten Tasters (MEM5)

◆ ee_Memory

uint8_t ee_Memory = 0

Punkt/Strich Speicher.

◆ ee_Ratio

uint8_t ee_Ratio = 30

Punkt/Strich Verhältnis 1:3.

◆ ee_Reverse

uint8_t ee_Reverse = 0

linkes/rechtes Paddle vertauschen

◆ ee_RiseTime

uint8_t ee_RiseTime = 5

Anstiegszeit Sinuston.

◆ ee_RiseTimeCounter

uint8_t ee_RiseTimeCounter = 5

Anzahl Sinusschwingungen für den Anstieg.

◆ ee_SidetoneEnabled

uint8_t ee_SidetoneEnabled = 1

Mithörton eingeschaltet.

◆ ee_SidetoneFreq

uint16_t ee_SidetoneFreq = 600

Frequenz des Mithörtons.

◆ ee_Trx1

uint8_t ee_Trx1 = 0

TRX 1.

◆ ee_Trx2

uint8_t ee_Trx2 = 0

TRX 2.

◆ ee_Weight

uint8_t ee_Weight = 50

Punkt/Strich Gewichtung.

◆ ee_WpM

uint8_t ee_WpM = 12

Geschwindigkeit WpM.

◆ ee_WpMBpM

uint8_t ee_WpMBpM = 0

WpM oder BpM Anzeige.