Morse code encoder library

Dependents:   MIDI_CW

Committer:
ChuckTimber
Date:
Sat Jul 26 22:48:52 2014 +0000
Revision:
1:e377d081edea
Parent:
0:27c38e4d6e4e
Child:
2:7dc8528b23da
Rotary Encoder introduced.

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