a MIDI-to-Morse code application.
Dependencies: MIDI REnc button mbed morse
main.cpp
- Committer:
- ChuckTimber
- Date:
- 2014-07-13
- Revision:
- 5:decb31e2efa4
- Parent:
- 4:98b4e2f46789
- Child:
- 6:7405805be717
File content as of revision 5:decb31e2efa4:
#include "mbed.h" #include "button.h" #define FREQ 800 DigitalOut myled(LED1); char* codes[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", " " }; char* nums[] = { "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----." }; char* marks[] = { ".-.-.-", // '.' "--..--", // ',' "..--..", // '?' "-.-.--", // '!' "-....-", // '-' "-..-.", // '/' ".--.-.", // '@' "-.--.", // '(' "-.--.-", // ')' "-...-", // '=' ".-..-.", // '"' ".-.-.", // '+' ".----.", // ''' "---...", // ':' "........" // 'HH' }; float cw_tick = 0.1; PwmOut __pwm( dp24 ); void BeepOFF (void) { __pwm.write(0.0); } void BeepON (void) { __pwm.write(0.5); } void dot (void) { BeepON(); myled = 1; wait(cw_tick); BeepOFF(); myled = 0; } void dash (void) { BeepON(); myled = 1; wait(cw_tick*3); BeepOFF(); myled = 0; } void space(int k) { wait(cw_tick * (float)k); } BTN btn(dp13); int main() { int i; char* ptr; { __pwm.period(1.0/FREQ); __pwm.write(0.0); }; btn.CMD = 0; while(1) { for (i = 0; i < 27; i++) { if(btn.CMD) { i = 0; btn.CMD = 0; } ptr = codes[i]; for (; *ptr; ptr++, space(1) ) { switch (*ptr) { case '-': dash(); break; case '.': dot(); break; case ' ': space(7); break; default: continue; } } space(2); } } }