Morse code encoder library

Dependents:   MIDI_CW

Committer:
ChuckTimber
Date:
Thu Aug 07 00:15:05 2014 +0000
Revision:
3:9c975c0e2342
Parent:
2:7dc8528b23da
Child:
4:e0cc0df745ef
Modified documentation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ChuckTimber 0:27c38e4d6e4e 1 #ifndef MBED_MORSE_H
ChuckTimber 0:27c38e4d6e4e 2 #define MBED_MORSE_H
ChuckTimber 0:27c38e4d6e4e 3
ChuckTimber 0:27c38e4d6e4e 4 #include "mbed.h"
ChuckTimber 0:27c38e4d6e4e 5
ChuckTimber 3:9c975c0e2342 6 /** @file
ChuckTimber 3:9c975c0e2342 7 * class to generate Morse code tone and keying signal.
ChuckTimber 0:27c38e4d6e4e 8 * sound with a buzzer, based on a PwmOut,
ChuckTimber 0:27c38e4d6e4e 9 * keying signal base on a DigitalOut
ChuckTimber 0:27c38e4d6e4e 10 *
ChuckTimber 0:27c38e4d6e4e 11 * Example:
ChuckTimber 0:27c38e4d6e4e 12 * @code
ChuckTimber 0:27c38e4d6e4e 13 * // Morse sample
ChuckTimber 0:27c38e4d6e4e 14 * #include "mbed.h"
ChuckTimber 0:27c38e4d6e4e 15 * #include "morse.h"
ChuckTimber 0:27c38e4d6e4e 16 *
ChuckTimber 0:27c38e4d6e4e 17 * char* codes[] = { ".-", "-...", "-.-.", "-..", ".",
ChuckTimber 0:27c38e4d6e4e 18 * "..-.", "--.", "....", "..", ".---",
ChuckTimber 0:27c38e4d6e4e 19 * "-.-", ".-..", "--", "-.", "---",
ChuckTimber 0:27c38e4d6e4e 20 * ".--.", "--.-", ".-.", "...", "-",
ChuckTimber 0:27c38e4d6e4e 21 * "..-", "...-", ".--", "-..-", "-.--", "--..", " "
ChuckTimber 0:27c38e4d6e4e 22 * };
ChuckTimber 0:27c38e4d6e4e 23 *
ChuckTimber 0:27c38e4d6e4e 24 * Morse morse;
ChuckTimber 0:27c38e4d6e4e 25 * //Morse morse(dp24, LED1);
ChuckTimber 0:27c38e4d6e4e 26 * //Morse morse(dp24, LED1, 0.1, 800);
ChuckTimber 0:27c38e4d6e4e 27 *
ChuckTimber 0:27c38e4d6e4e 28 * int main()
ChuckTimber 0:27c38e4d6e4e 29 * {
ChuckTimber 0:27c38e4d6e4e 30 * int i;
ChuckTimber 0:27c38e4d6e4e 31 *
ChuckTimber 0:27c38e4d6e4e 32 * while(1) {
ChuckTimber 0:27c38e4d6e4e 33 * for (i = 0; i < 27; i++) {
ChuckTimber 0:27c38e4d6e4e 34 * morse.code(codes[i]);
ChuckTimber 0:27c38e4d6e4e 35 * }
ChuckTimber 0:27c38e4d6e4e 36 * }
ChuckTimber 0:27c38e4d6e4e 37 * }
ChuckTimber 0:27c38e4d6e4e 38 * @endcode
ChuckTimber 0:27c38e4d6e4e 39 */
ChuckTimber 0:27c38e4d6e4e 40
ChuckTimber 0:27c38e4d6e4e 41 namespace mbed {
ChuckTimber 0:27c38e4d6e4e 42 /* Class: Morse
ChuckTimber 0:27c38e4d6e4e 43 * A class whitch uses pwm and digitalout to generate morse tone and signal.
ChuckTimber 0:27c38e4d6e4e 44 */
ChuckTimber 0:27c38e4d6e4e 45 class Morse {
ChuckTimber 0:27c38e4d6e4e 46
ChuckTimber 0:27c38e4d6e4e 47 private:
ChuckTimber 1:e377d081edea 48 static const float table[128];
ChuckTimber 0:27c38e4d6e4e 49 float cw_tick;
ChuckTimber 1:e377d081edea 50 int tick_idx;
ChuckTimber 0:27c38e4d6e4e 51 float freq;
ChuckTimber 2:7dc8528b23da 52 DigitalOut _pout;
ChuckTimber 0:27c38e4d6e4e 53 PwmOut _pwm;
ChuckTimber 0:27c38e4d6e4e 54
ChuckTimber 0:27c38e4d6e4e 55 void beep (int k);
ChuckTimber 0:27c38e4d6e4e 56 void space(int k);
ChuckTimber 0:27c38e4d6e4e 57
ChuckTimber 1:e377d081edea 58
ChuckTimber 0:27c38e4d6e4e 59 public:
ChuckTimber 0:27c38e4d6e4e 60
ChuckTimber 0:27c38e4d6e4e 61 void setfreq(float f);
ChuckTimber 0:27c38e4d6e4e 62 float getfreq(void);
ChuckTimber 0:27c38e4d6e4e 63 void settick(float t);
ChuckTimber 0:27c38e4d6e4e 64 float gettick(void);
ChuckTimber 1:e377d081edea 65 void setidx(int idx);
ChuckTimber 1:e377d081edea 66 int getidx(void);
ChuckTimber 1:e377d081edea 67 void incidx(void);
ChuckTimber 1:e377d081edea 68 void decidx(void);
ChuckTimber 0:27c38e4d6e4e 69
ChuckTimber 0:27c38e4d6e4e 70 void code(char* code);
ChuckTimber 0:27c38e4d6e4e 71
ChuckTimber 0:27c38e4d6e4e 72 Morse(void);
ChuckTimber 0:27c38e4d6e4e 73 Morse(PinName pwm, PinName led);
ChuckTimber 0:27c38e4d6e4e 74 Morse(PinName pwm, PinName led, float t);
ChuckTimber 0:27c38e4d6e4e 75 Morse(PinName pwm, PinName led, float t, float f);
ChuckTimber 0:27c38e4d6e4e 76
ChuckTimber 0:27c38e4d6e4e 77 }; // end of class definition Morse
ChuckTimber 0:27c38e4d6e4e 78 } // end of namespace mbed
ChuckTimber 0:27c38e4d6e4e 79 #endif