#define ASCII_TO_MORSE_OFFSET 0x00
const byte ascii_to_morse[] PROGMEM = {
0b00000000, // 000 NUL
0b00000000, // 001 SOH
0b00000000, // 002 STX
0b00000000, // 003 ETX
0b00000000, // 004 EOT
0b00000000, // 005 ENQ
0b00000000, // 006 ACK
0b00000000, // 007 BEL
0b00000001, // 008 BS ERR
0b00000000, // 009 HT
0b00000000, // 00A LF
0b00000000, // 00B VT
0b00000000, // 00C FF
0b10001100, // 00D CR BT
0b00000000, // 00E SO
0b00000000, // 00F SI
0b00000000, // 010 DLE
0b00000000, // 011 DC1
0b00000000, // 012 DC2
0b00000000, // 013 DC3
0b00000000, // 014 DC4
0b00000000, // 015 NAK
0b00000000, // 016 SYN
0b00000000, // 017 ETB
0b00000000, // 018 CAN
0b00000000, // 019 EM
0b00000000, // 01A SUB
0b00000001, // 01B ESC
0b00000000, // 01C FS
0b00000000, // 01D GS
0b00000000, // 01E RS
0b00000000, // 01F US
0b00000000, // 020 SP
0b00000000, // 021 !
0b00000000, // 022 "
0b00000000, // 023 #
0b00000000, // 024 $
0b00000000, // 025 %
0b00000000, // 026 &
0b00000000, // 027 '
0b00000000, // 028 (
0b00000000, // 029 )
0b00000000, // 02A *
0b01010100, // 02B + AR
0b11001110, // 02C ,
0b00010110, // 02D - SK
0b01010110, // 02E .
0b10010100, // 02F /
0b11111100, // 030 0
0b01111100, // 031 1
0b00111100, // 032 2
0b00011100, // 033 3
0b00001100, // 034 4
0b00000100, // 035 5
0b10000100, // 036 6
0b11000100, // 037 7
0b11100100, // 038 8
0b11110100, // 039 9
0b10001100, // 03A : BT
0b10001100, // 03B ; BT
0b00000000, // 03C <
0b10001100, // 03D =
0b00000000, // 03E >
0b00110010, // 03F ?
0b00000000, // 040 @
0b01100000, // 041 A
0b10001000, // 042 B
0b10101000, // 043 C
0b10010000, // 044 D
0b01000000, // 045 E
0b00101000, // 046 F
0b11010000, // 047 G
0b00001000, // 048 H
0b00100000, // 049 I
0b01111000, // 04A J
0b10110000, // 04B K
0b01001000, // 04C L
0b11100000, // 04D M
0b10100000, // 04E N
0b11110000, // 04F O
0b01101000, // 050 P
0b11011000, // 051 Q
0b01010000, // 052 R
0b00010000, // 053 S
0b11000000, // 054 T
0b00110000, // 055 U
0b00011000, // 056 V
0b01110000, // 057 W
0b10011000, // 058 X
0b10111000, // 059 Y
0b11001000, // 05A Z
0b00000000, // 05B [
0b00000000, // 05C '\'
0b00000000, // 05D ]
0b00000000, // 05E ^
0b00000000, // 05F _
0b00000000, // 060 `
0b01100000, // 061 a
0b10001000, // 062 b
0b10101000, // 063 c
0b10010000, // 064 d
0b01000000, // 065 e
0b00101000, // 066 f
0b11010000, // 067 g
0b00001000, // 068 h
0b00100000, // 069 i
0b01111000, // 06A j
0b10110000, // 06B k
0b01001000, // 06C l
0b11100000, // 06D m
0b10100000, // 06E n
0b11110000, // 06F o
0b01101000, // 070 p
0b11011000, // 071 q
0b01010000, // 072 r
0b00010000, // 073 s
0b11000000, // 074 t
0b00110000, // 075 u
0b00011000, // 076 v
0b01110000, // 077 w
0b10011000, // 078 x
0b10111000, // 079 y
0b11001000, // 07A z
0b00000000, // 07B {
0b00000000, // 07C |
0b00000000, // 07D }
0b00000000, // 07E ~
0b00000000 // 07F DEL
};
inline byte GetMorseFromAscii( char c )
{
if( c < ASCII_TO_MORSE_OFFSET || c > 0x80 )
return 0;
return pgm_read_byte(ascii_to_morse + c - ASCII_TO_MORSE_OFFSET);
}
Like this:
Like Loading...
[…] you are just looking for the ASCII to Morse conversion table then you can get that here. Note that I’ve used non-standard keys for […]