mirror of
https://codeberg.org/mclemens/ubitxv6.git
synced 2024-10-25 07:51:32 -04:00
Delete morse_reader.ino
This commit is contained in:
parent
8e2f93ab8b
commit
e19bec690a
111
morse_reader.ino
111
morse_reader.ino
@ -1,111 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
* Each byte of the morse table stores one letter.
|
|
||||||
* The 0 is a dot, a 1 is a dash
|
|
||||||
* From the Most significant byte onwards, the letter is padded with 1s.
|
|
||||||
* The first zero after the 1s indicates the start of the letter, it MUST be discarded
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct Morse {
|
|
||||||
char letter;
|
|
||||||
unsigned char code;
|
|
||||||
};
|
|
||||||
|
|
||||||
const PROGMEM struct Morse morse_table[] = {
|
|
||||||
{'a', 0xf9}, // 11111001
|
|
||||||
{'b', 0xe8}, // 11101000
|
|
||||||
{'c', 0xea}, // 11101010
|
|
||||||
{'d', 0xf4}, // 11110100
|
|
||||||
{'e', 0xfc}, // 11111100
|
|
||||||
{'f', 0xe4}, // 11100100
|
|
||||||
{'g', 0xf6}, // 11110110
|
|
||||||
{'h', 0xe0}, // 11100000
|
|
||||||
{'i', 0xf8}, // 11111000
|
|
||||||
{'j', 0xe7}, // 11100111
|
|
||||||
{'k', 0xf6}, // 11110101
|
|
||||||
{'l', 0xe4}, // 11100100
|
|
||||||
{'m', 0xfb}, // 11111011
|
|
||||||
{'n', 0xfa}, // 11111010
|
|
||||||
{'o', 0xf7}, // 11110111
|
|
||||||
{'p', 0xe6}, // 11100110
|
|
||||||
{'q', 0xed}, // 11101101
|
|
||||||
{'r', 0xf2}, // 11110010
|
|
||||||
{'s', 0xf0}, // 11110000
|
|
||||||
{'t', 0xfd}, // 11111101
|
|
||||||
{'u', 0xf1}, // 11110001
|
|
||||||
{'v', 0xe1}, // 11100001
|
|
||||||
{'w', 0xf3}, // 11110011
|
|
||||||
{'x', 0xe9}, // 11101001
|
|
||||||
{'y', 0xe3}, // 11101011
|
|
||||||
{'z', 0xec}, // 11101100
|
|
||||||
{'1', 0xcf}, // 11001111
|
|
||||||
{'2', 0xc7}, // 11000111
|
|
||||||
{'3', 0xc3}, // 11000011
|
|
||||||
{'4', 0xc1}, // 11000001
|
|
||||||
{'5', 0xc0}, // 11000000
|
|
||||||
{'6', 0xd0}, // 11010000
|
|
||||||
{'7', 0xd8}, // 11011000
|
|
||||||
{'8', 0xdc}, // 11011100
|
|
||||||
{'9', 0xde}, // 11011110
|
|
||||||
{'0', 0xdf}, // 11011111
|
|
||||||
{'.', 0xd5}, // 110010101
|
|
||||||
{'?', 0xd3}, // 110110011
|
|
||||||
};
|
|
||||||
|
|
||||||
void morseLetter(char c){
|
|
||||||
unsigned char mask = 0x80;
|
|
||||||
|
|
||||||
//handle space character as three dashes
|
|
||||||
if (c == ' '){
|
|
||||||
active_delay(cwSpeed * 9);
|
|
||||||
Serial.print(' ');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < sizeof(morse_table)/ sizeof(struct Morse); i++){
|
|
||||||
struct Morse m;
|
|
||||||
memcpy_P(&m, morse_table + i, sizeof(struct Morse));
|
|
||||||
|
|
||||||
if (m.letter == tolower(c)){
|
|
||||||
unsigned char code = m.code;
|
|
||||||
//Serial.print(m.letter); Serial.println(' ');
|
|
||||||
|
|
||||||
while(mask & code && mask > 1)
|
|
||||||
mask = mask >> 1;
|
|
||||||
//now we are at the first zero, skip and carry on
|
|
||||||
mask = mask >> 1;
|
|
||||||
while(mask){
|
|
||||||
tone(CW_TONE, sideTone,10000);
|
|
||||||
if (mask & code){
|
|
||||||
delay(3 * (int)cwSpeed);
|
|
||||||
//Serial.print('-');
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
delay((int)cwSpeed);
|
|
||||||
//Serial.print('.');
|
|
||||||
}
|
|
||||||
//Serial.print('#');
|
|
||||||
noTone(CW_TONE);
|
|
||||||
delay((int)cwSpeed); // space between dots and dashes
|
|
||||||
mask = mask >> 1;
|
|
||||||
}
|
|
||||||
//Serial.println('@');
|
|
||||||
delay(200); // space between letters is a dash (3 dots), one dot's space has already been sent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void morseText(char *text){
|
|
||||||
// while (1){
|
|
||||||
noTone(CW_TONE);
|
|
||||||
delay(1000);
|
|
||||||
tone(CW_TONE, 600);
|
|
||||||
delay(1000);
|
|
||||||
// }
|
|
||||||
|
|
||||||
Serial.println(sideTone);
|
|
||||||
while(*text){
|
|
||||||
morseLetter(*text++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user