BJ-Keyer  1.03
Morsekeyer für 2 TRX und 6 Morsetasten
globals.h-Dateireferenz

Globale Variablen, Definitionen und Prototypen. Mehr ...

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <math.h>
#include <inttypes.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <util/atomic.h>
#include "oled/i2c.h"
#include "oled/lcd.h"
#include "oled/font.h"
Include-Abhängigkeitsdiagramm für globals.h:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  State
 
struct  MenuCtrl
 
struct  Config
 
struct  Message
 

Makrodefinitionen

#define F_CPU   16000000UL
 
#define PRESCALER   8
 
#define SINEWAVELENGTH   64
 
#define F_CPUPRESIN   (F_CPU/(PRESCALER*SINEWAVELENGTH))
 
#define USART_BAUDRATE   9600
 
#define UBRR_VALUE   (((F_CPU/(USART_BAUDRATE*16UL)))-1)
 
#define cbi(sfr, bit)   (_SFR_BYTE(sfr) &= ~_BV(bit))
 
#define sbi(sfr, bit)   (_SFR_BYTE(sfr) |= _BV(bit))
 
#define NOINIT   __attribute__ ((section (".noinit")))
 
#define CALL   " DL7BJ "
 
#define PRG   " BJ-Keyer "
 
#define VER   " V1.03 "
 
#define NOTHING   0
 Keying states. Mehr ...
 
#define DIT_DAH_OFF   1
 
#define DAH_DIT_OFF   2
 
#define DIT_DAH_ON   3
 
#define DAH_DIT_ON   4
 
#define STRAIGHT   0
 Keyer mode. Mehr ...
 
#define IAMBIC_B   1
 
#define IAMBIC_A   2
 
#define ULTIMATIC   3
 
#define SINGLE_PADDLE   4
 
#define PADDLE_NORMAL   0
 Paddle Mode. Mehr ...
 
#define PADDLE_REVERSE   1
 
#define SENDING_NOTHING   0
 Sending Mode. Mehr ...
 
#define SENDING_DIT   1
 
#define SENDING_DAH   2
 
#define SENDING_SPC   3
 
#define SENDING_STRAIGHT   4
 
#define SENDING_AUTOMATIC   5
 
#define AUTO   0
 Sending Type. Mehr ...
 
#define MAN   1
 
#define LEFT_PADDLE   PD2
 Ports. Mehr ...
 
#define RIGHT_PADDLE   PD3
 Right Paddle Input. Mehr ...
 
#define STRAIGHT_KEY   PD4
 Straight key Input. Mehr ...
 
#define MORSE_LED   PC3
 LED Morse Output. Mehr ...
 
#define MEM1   PD5
 Mem 1 Input. Mehr ...
 
#define MEM2   PD6
 Mem 2 Input. Mehr ...
 
#define MEM3   PD7
 Mem 3 Input. Mehr ...
 
#define MEM4   PC0
 Mem 4 Input. Mehr ...
 
#define MEM5   PB5
 Mem 5 Input. Mehr ...
 
#define TRX1   PC1
 TRX1 Output. Mehr ...
 
#define TRX2   PC2
 TRX2 Output. Mehr ...
 
#define AUDIO   PB3
 PWM Audio Output. Mehr ...
 
#define AUDIO_EN   PB4
 Audio PA Enable. Mehr ...
 
#define SCL   PC5
 I²C LC Display. Mehr ...
 
#define SDA   PC4
 I²C LC Display. Mehr ...
 
#define ON   1
 
#define OFF   0
 
#define DIT   1
 
#define DAH   0
 
#define NO_KEY_PRESSED   0
 
#define KEY_PRESSED_DEBOUNCE   1
 
#define KEY_PRESSED   2
 
#define M_TRX1   1
 
#define M_TRX2   2
 
#define M_TON   3
 
#define M_TON_FREQ   4
 
#define M_IAMBICA   5
 
#define M_IAMBICB   6
 
#define M_ULTIMATIC   7
 
#define M_MEMORY   8
 
#define M_REVERSE   9
 
#define M_RATIO   10
 
#define M_WEIGHT   11
 
#define M_WPMBPM   12
 
#define M_MEMBUTTONMODE   13
 
#define M_RISETIME   14
 
#define M_DEBOUNCE   15
 
#define M_MAX   15
 
#define CLEARLINE   " "
 OLED. Mehr ...
 
#define NORMAL   0
 
#define MSGSIZE   60
 60 Zeichen für jeden Textspeicher Mehr ...
 

Variablen

uint8_t LastPINDState
 
volatile uint8_t EncoderTimer
 10ms Timer for Encoder Mehr ...
 
volatile int8_t EncoderCounter
 Vor/Rück Zähler. Mehr ...
 
volatile int8_t EncoderPos
 Encoderposition für WpM/BpM. Mehr ...
 
volatile int8_t EncoderPosConfig
 Encoderposition für Einstellungen. Mehr ...
 
volatile int8_t EncoderPosSubConfig
 Encoderposition für Submenues. Mehr ...
 
volatile uint16_t StoreEEpromTimer
 Zählvariable für auto. Speicherung EEprom. Mehr ...
 
uint8_t WpM
 Aktuelle Zeichengeschwindigkeit. Mehr ...
 
uint8_t PaddleMode
 Merker für Links / Rechts vertauscht. Mehr ...
 
uint8_t KeyerMode
 Merker für Iambic A, Iambic B oder Ultimatic. Mehr ...
 
uint8_t KeyTX
 
volatile uint8_t icnt
 
volatile uint8_t ocr2a
 
volatile uint8_t lastButton
 Wert der letzten Buttonabfrage. Mehr ...
 
volatile uint16_t DitMillis
 Dauer eines Dits. Mehr ...
 
volatile uint16_t DahMillis
 Dauer eines Dahs. Mehr ...
 
volatile uint16_t SpcMillis
 Dauer einer Pause zwischen den Zeichen. Mehr ...
 
volatile uint8_t StateStraightKeyPressed
 Merker für StraightKey betätigt. Mehr ...
 
volatile uint8_t TimerStraightKeyPressed
 Timer Variable für Entprellung. Mehr ...
 
volatile uint8_t StatePaddleDitKeyPressed
 Merker für Paddle betätigt. Mehr ...
 
volatile uint8_t TimerPaddleDitKeyPressed
 Timer Variable für Entprellung. Mehr ...
 
volatile uint8_t StatePaddleDahKeyPressed
 Merker für Paddle betätigt. Mehr ...
 
volatile uint8_t TimerPaddleDahKeyPressed
 Timer Variable für Entprellung. Mehr ...
 
volatile uint8_t StateButtonPressed
 Merker für Speichertaste betätigt. Mehr ...
 
volatile uint8_t TimerButtonPressed
 Timer Variable für Entprellung. Mehr ...
 
volatile uint8_t StateRiseTimeCounter
 Zähler für Anstieg des Mithörtons. Mehr ...
 
volatile uint8_t StateRiseTime
 Timer für Anstieg des Mithörtons. Mehr ...
 
uint16_t MenuCtrlTimer
 Wartezeit bis zur Betriebsanzeige nach Config. Mehr ...
 
volatile uint16_t t_delayms
 Timer 0 max. 65535ms, all purpose timer variable. Mehr ...
 
volatile uint16_t t_elementlength
 Timer 0 max. 65535ms, element length of dit or dah. Mehr ...
 

Ausführliche Beschreibung

Globale Variablen, Definitionen und Prototypen.

Makro-Dokumentation

◆ AUDIO

#define AUDIO   PB3

PWM Audio Output.

◆ AUDIO_EN

#define AUDIO_EN   PB4

Audio PA Enable.

◆ AUTO

#define AUTO   0

Sending Type.

Automatische Pausen zwischen Elementen

◆ CLEARLINE

#define CLEARLINE   " "

OLED.

◆ LEFT_PADDLE

#define LEFT_PADDLE   PD2

Ports.

Left Paddle Input

◆ M_MAX

#define M_MAX   15

maximale Menuepunke

◆ MAN

#define MAN   1

Manuelle Pausen zwischen Elementen

◆ MEM1

#define MEM1   PD5

Mem 1 Input.

◆ MEM2

#define MEM2   PD6

Mem 2 Input.

◆ MEM3

#define MEM3   PD7

Mem 3 Input.

◆ MEM4

#define MEM4   PC0

Mem 4 Input.

◆ MEM5

#define MEM5   PB5

Mem 5 Input.

◆ MORSE_LED

#define MORSE_LED   PC3

LED Morse Output.

◆ MSGSIZE

#define MSGSIZE   60

60 Zeichen für jeden Textspeicher

◆ NOTHING

#define NOTHING   0

Keying states.

◆ PADDLE_NORMAL

#define PADDLE_NORMAL   0

Paddle Mode.

◆ RIGHT_PADDLE

#define RIGHT_PADDLE   PD3

Right Paddle Input.

◆ SCL

#define SCL   PC5

I²C LC Display.

◆ SDA

#define SDA   PC4

I²C LC Display.

◆ SENDING_NOTHING

#define SENDING_NOTHING   0

Sending Mode.

◆ STRAIGHT

#define STRAIGHT   0

Keyer mode.

◆ STRAIGHT_KEY

#define STRAIGHT_KEY   PD4

Straight key Input.

◆ TRX1

#define TRX1   PC1

TRX1 Output.

◆ TRX2

#define TRX2   PC2

TRX2 Output.

Variablen-Dokumentation

◆ DahMillis

volatile uint16_t DahMillis

Dauer eines Dahs.

◆ DitMillis

volatile uint16_t DitMillis

Dauer eines Dits.

◆ EncoderCounter

volatile int8_t EncoderCounter

Vor/Rück Zähler.

◆ EncoderPos

volatile int8_t EncoderPos

Encoderposition für WpM/BpM.

◆ EncoderPosConfig

volatile int8_t EncoderPosConfig

Encoderposition für Einstellungen.

◆ EncoderPosSubConfig

volatile int8_t EncoderPosSubConfig

Encoderposition für Submenues.

◆ EncoderTimer

volatile uint8_t EncoderTimer

10ms Timer for Encoder

◆ KeyerMode

uint8_t KeyerMode

Merker für Iambic A, Iambic B oder Ultimatic.

◆ lastButton

volatile uint8_t lastButton

Wert der letzten Buttonabfrage.

◆ MenuCtrlTimer

uint16_t MenuCtrlTimer

Wartezeit bis zur Betriebsanzeige nach Config.

◆ PaddleMode

uint8_t PaddleMode

Merker für Links / Rechts vertauscht.

◆ SpcMillis

volatile uint16_t SpcMillis

Dauer einer Pause zwischen den Zeichen.

◆ StateButtonPressed

volatile uint8_t StateButtonPressed

Merker für Speichertaste betätigt.

◆ StatePaddleDahKeyPressed

volatile uint8_t StatePaddleDahKeyPressed

Merker für Paddle betätigt.

◆ StatePaddleDitKeyPressed

volatile uint8_t StatePaddleDitKeyPressed

Merker für Paddle betätigt.

◆ StateRiseTime

volatile uint8_t StateRiseTime

Timer für Anstieg des Mithörtons.

◆ StateRiseTimeCounter

volatile uint8_t StateRiseTimeCounter

Zähler für Anstieg des Mithörtons.

◆ StateStraightKeyPressed

volatile uint8_t StateStraightKeyPressed

Merker für StraightKey betätigt.

◆ StoreEEpromTimer

volatile uint16_t StoreEEpromTimer

Zählvariable für auto. Speicherung EEprom.

◆ t_delayms

volatile uint16_t t_delayms

Timer 0 max. 65535ms, all purpose timer variable.

◆ t_elementlength

volatile uint16_t t_elementlength

Timer 0 max. 65535ms, element length of dit or dah.

◆ TimerButtonPressed

volatile uint8_t TimerButtonPressed

Timer Variable für Entprellung.

◆ TimerPaddleDahKeyPressed

volatile uint8_t TimerPaddleDahKeyPressed

Timer Variable für Entprellung.

◆ TimerPaddleDitKeyPressed

volatile uint8_t TimerPaddleDitKeyPressed

Timer Variable für Entprellung.

◆ TimerStraightKeyPressed

volatile uint8_t TimerStraightKeyPressed

Timer Variable für Entprellung.

◆ WpM

uint8_t WpM

Aktuelle Zeichengeschwindigkeit.