Morse code encoder library
morse.h@1:e377d081edea, 2014-07-26 (annotated)
- 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?
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 | 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 |