Morse code encoder library
morse.h@3:9c975c0e2342, 2014-08-07 (annotated)
- 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?
User | Revision | Line number | New 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 |