Tony Abbey
/
Morse-buddy-JohnF
Random morse code at 4 different speeds. Originally posted by John Fisher on the AQRP Yahoo group.
Morse_Code.h@0:8c725fbd8e0e, 2013-06-22 (annotated)
- Committer:
- tony1tf
- Date:
- Sat Jun 22 21:52:12 2013 +0000
- Revision:
- 0:8c725fbd8e0e
Random morse code practice at 4 different speeds. Written by John Fisher and published on the AQRP Yahoo group.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony1tf | 0:8c725fbd8e0e | 1 | |
tony1tf | 0:8c725fbd8e0e | 2 | //============================================================== |
tony1tf | 0:8c725fbd8e0e | 3 | // Morse Code June 30, 2011 John H. Fisher - K5JHF |
tony1tf | 0:8c725fbd8e0e | 4 | //============================================================== |
tony1tf | 0:8c725fbd8e0e | 5 | |
tony1tf | 0:8c725fbd8e0e | 6 | #ifndef MORSE_CODE_H |
tony1tf | 0:8c725fbd8e0e | 7 | #define MORSE_CODE_H |
tony1tf | 0:8c725fbd8e0e | 8 | |
tony1tf | 0:8c725fbd8e0e | 9 | #include "Goodies.h" |
tony1tf | 0:8c725fbd8e0e | 10 | |
tony1tf | 0:8c725fbd8e0e | 11 | #define PI 3.141592654 |
tony1tf | 0:8c725fbd8e0e | 12 | |
tony1tf | 0:8c725fbd8e0e | 13 | #define step PI/16 |
tony1tf | 0:8c725fbd8e0e | 14 | |
tony1tf | 0:8c725fbd8e0e | 15 | extern const float sine_wave [ 32 ]; |
tony1tf | 0:8c725fbd8e0e | 16 | |
tony1tf | 0:8c725fbd8e0e | 17 | class Morse_Code : private Goodies { |
tony1tf | 0:8c725fbd8e0e | 18 | |
tony1tf | 0:8c725fbd8e0e | 19 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 20 | |
tony1tf | 0:8c725fbd8e0e | 21 | private: |
tony1tf | 0:8c725fbd8e0e | 22 | |
tony1tf | 0:8c725fbd8e0e | 23 | float u, _WPM_Character, _WPM_Speed, ta, tc, tw; |
tony1tf | 0:8c725fbd8e0e | 24 | |
tony1tf | 0:8c725fbd8e0e | 25 | int _Tone_Frequency; |
tony1tf | 0:8c725fbd8e0e | 26 | |
tony1tf | 0:8c725fbd8e0e | 27 | char _LED_Pin, _Speaker_Pin; |
tony1tf | 0:8c725fbd8e0e | 28 | |
tony1tf | 0:8c725fbd8e0e | 29 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 30 | |
tony1tf | 0:8c725fbd8e0e | 31 | struct { |
tony1tf | 0:8c725fbd8e0e | 32 | |
tony1tf | 0:8c725fbd8e0e | 33 | int last_bit:1; |
tony1tf | 0:8c725fbd8e0e | 34 | |
tony1tf | 0:8c725fbd8e0e | 35 | int last_char:1; |
tony1tf | 0:8c725fbd8e0e | 36 | |
tony1tf | 0:8c725fbd8e0e | 37 | int _Sound:1; |
tony1tf | 0:8c725fbd8e0e | 38 | |
tony1tf | 0:8c725fbd8e0e | 39 | int _Practice:1; |
tony1tf | 0:8c725fbd8e0e | 40 | |
tony1tf | 0:8c725fbd8e0e | 41 | } Morse_Flag; |
tony1tf | 0:8c725fbd8e0e | 42 | |
tony1tf | 0:8c725fbd8e0e | 43 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 44 | |
tony1tf | 0:8c725fbd8e0e | 45 | public: |
tony1tf | 0:8c725fbd8e0e | 46 | |
tony1tf | 0:8c725fbd8e0e | 47 | Morse_Code ( float WPM_Character = 18.0, |
tony1tf | 0:8c725fbd8e0e | 48 | float WPM_Speed = 5.0, |
tony1tf | 0:8c725fbd8e0e | 49 | int Tone_Frequency = 700, |
tony1tf | 0:8c725fbd8e0e | 50 | char LED_Pin = 11, |
tony1tf | 0:8c725fbd8e0e | 51 | char Speaker_Pin = 9 ); |
tony1tf | 0:8c725fbd8e0e | 52 | |
tony1tf | 0:8c725fbd8e0e | 53 | void Sound_On ( void ); |
tony1tf | 0:8c725fbd8e0e | 54 | |
tony1tf | 0:8c725fbd8e0e | 55 | void Sound_Off ( void ); |
tony1tf | 0:8c725fbd8e0e | 56 | |
tony1tf | 0:8c725fbd8e0e | 57 | void Sound_Toggle ( void ); |
tony1tf | 0:8c725fbd8e0e | 58 | |
tony1tf | 0:8c725fbd8e0e | 59 | void Practice_On ( void ); |
tony1tf | 0:8c725fbd8e0e | 60 | |
tony1tf | 0:8c725fbd8e0e | 61 | void Practice_Off ( void ); |
tony1tf | 0:8c725fbd8e0e | 62 | |
tony1tf | 0:8c725fbd8e0e | 63 | void Practice_Toggle ( void ); |
tony1tf | 0:8c725fbd8e0e | 64 | |
tony1tf | 0:8c725fbd8e0e | 65 | int get_Practice ( void ); |
tony1tf | 0:8c725fbd8e0e | 66 | |
tony1tf | 0:8c725fbd8e0e | 67 | char Morse ( char ASCII ); |
tony1tf | 0:8c725fbd8e0e | 68 | |
tony1tf | 0:8c725fbd8e0e | 69 | void Send_Morse ( char Morse ); |
tony1tf | 0:8c725fbd8e0e | 70 | |
tony1tf | 0:8c725fbd8e0e | 71 | char Random_Code ( void ); |
tony1tf | 0:8c725fbd8e0e | 72 | |
tony1tf | 0:8c725fbd8e0e | 73 | void set_Tone ( int frequency ); |
tony1tf | 0:8c725fbd8e0e | 74 | |
tony1tf | 0:8c725fbd8e0e | 75 | int get_Tone ( ); |
tony1tf | 0:8c725fbd8e0e | 76 | |
tony1tf | 0:8c725fbd8e0e | 77 | void Tone_Adjust ( int delta, int limit ); |
tony1tf | 0:8c725fbd8e0e | 78 | |
tony1tf | 0:8c725fbd8e0e | 79 | void set_WPM ( float WPM_Speed ); |
tony1tf | 0:8c725fbd8e0e | 80 | |
tony1tf | 0:8c725fbd8e0e | 81 | float get_WPM ( ); |
tony1tf | 0:8c725fbd8e0e | 82 | |
tony1tf | 0:8c725fbd8e0e | 83 | void WPM_Adjust ( float delta, float limit ); |
tony1tf | 0:8c725fbd8e0e | 84 | |
tony1tf | 0:8c725fbd8e0e | 85 | private: |
tony1tf | 0:8c725fbd8e0e | 86 | |
tony1tf | 0:8c725fbd8e0e | 87 | void Calculate_Morse_Timing ( float s, float c ) ; |
tony1tf | 0:8c725fbd8e0e | 88 | |
tony1tf | 0:8c725fbd8e0e | 89 | void dit ( ); |
tony1tf | 0:8c725fbd8e0e | 90 | |
tony1tf | 0:8c725fbd8e0e | 91 | void dah ( ); |
tony1tf | 0:8c725fbd8e0e | 92 | |
tony1tf | 0:8c725fbd8e0e | 93 | void Tone ( int freq_factor, float duration ) ; |
tony1tf | 0:8c725fbd8e0e | 94 | |
tony1tf | 0:8c725fbd8e0e | 95 | }; |
tony1tf | 0:8c725fbd8e0e | 96 | |
tony1tf | 0:8c725fbd8e0e | 97 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 98 | |
tony1tf | 0:8c725fbd8e0e | 99 | #endif |
tony1tf | 0:8c725fbd8e0e | 100 | |
tony1tf | 0:8c725fbd8e0e | 101 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 102 | |
tony1tf | 0:8c725fbd8e0e | 103 |