make morse tone freq user settable
This commit is contained in:
parent
4ff3f7d9d0
commit
5874e6b8e5
|
@ -52,6 +52,8 @@ void setup() {
|
||||||
// Tell the HamShield to start up
|
// Tell the HamShield to start up
|
||||||
radio.initialize();
|
radio.initialize();
|
||||||
radio.setRfPower(0);
|
radio.setRfPower(0);
|
||||||
|
|
||||||
|
radio.setMorseFreq(400);
|
||||||
|
|
||||||
// Configure the HamShield to transmit and recieve on 446.000MHz
|
// Configure the HamShield to transmit and recieve on 446.000MHz
|
||||||
radio.frequency(438000);
|
radio.frequency(438000);
|
||||||
|
|
|
@ -24,6 +24,9 @@ const uint32_t MURS[] PROGMEM = {0,151820,151880,151940,154570,154600};
|
||||||
|
|
||||||
const uint32_t WX[] PROGMEM = {0,162550,162400,162475,162425,162450,162500,162525};
|
const uint32_t WX[] PROGMEM = {0,162550,162400,162475,162425,162450,162500,162525};
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int morse_freq = 600;
|
||||||
|
|
||||||
/* morse code lookup table */
|
/* morse code lookup table */
|
||||||
// This is the Morse table in reverse binary format.
|
// This is the Morse table in reverse binary format.
|
||||||
// It will occupy 108 bytes of memory (or program memory if defined)
|
// It will occupy 108 bytes of memory (or program memory if defined)
|
||||||
|
@ -1283,6 +1286,17 @@ bool HamShield::waitForChannel(long timeout = 0, long breakwindow = 0, int setRS
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get current morse code tone frequency (in Hz)
|
||||||
|
|
||||||
|
unsigned int HamShield::getMorseFreq() {
|
||||||
|
return morse_freq;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set current morse code tone frequency (in Hz)
|
||||||
|
|
||||||
|
void HamShield::setMorseFreq(unsigned int morse_freq_hz) {
|
||||||
|
morse_freq = morse_freq_hz;
|
||||||
|
}
|
||||||
|
|
||||||
/* Morse code out, blocking */
|
/* Morse code out, blocking */
|
||||||
|
|
||||||
|
@ -1308,10 +1322,10 @@ void HamShield::morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]) {
|
||||||
if(bits) { // If it is a valid character...
|
if(bits) { // If it is a valid character...
|
||||||
do {
|
do {
|
||||||
if(bits & 1) {
|
if(bits & 1) {
|
||||||
tone(HAMSHIELD_PWM_PIN, 600, HAMSHIELD_MORSE_DOT * 3);
|
tone(HAMSHIELD_PWM_PIN, morse_freq, HAMSHIELD_MORSE_DOT * 3);
|
||||||
delay(HAMSHIELD_MORSE_DOT*3);
|
delay(HAMSHIELD_MORSE_DOT*3);
|
||||||
} else {
|
} else {
|
||||||
tone(HAMSHIELD_PWM_PIN, 600, HAMSHIELD_MORSE_DOT);
|
tone(HAMSHIELD_PWM_PIN, morse_freq, HAMSHIELD_MORSE_DOT);
|
||||||
delay(HAMSHIELD_MORSE_DOT);
|
delay(HAMSHIELD_MORSE_DOT);
|
||||||
}
|
}
|
||||||
tone(HAMSHIELD_PWM_PIN, 6000, HAMSHIELD_MORSE_DOT);
|
tone(HAMSHIELD_PWM_PIN, 6000, HAMSHIELD_MORSE_DOT);
|
||||||
|
|
|
@ -481,6 +481,8 @@ class HamShield {
|
||||||
void buttonMode(uint8_t mode);
|
void buttonMode(uint8_t mode);
|
||||||
static void isr_ptt();
|
static void isr_ptt();
|
||||||
static void isr_reset();
|
static void isr_reset();
|
||||||
|
unsigned int getMorseFreq();
|
||||||
|
void setMorseFreq(unsigned int morse_freq_hz);
|
||||||
void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
|
void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
|
||||||
uint8_t morseLookup(char letter);
|
uint8_t morseLookup(char letter);
|
||||||
bool waitForChannel(long timeout, long breakwindow, int setRSSI);
|
bool waitForChannel(long timeout, long breakwindow, int setRSSI);
|
||||||
|
|
Loading…
Reference in New Issue