mirror of
https://codeberg.org/mclemens/ubitxv6.git
synced 2024-07-13 23:34:31 -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