John's code modified for envelope shaping and different colours
Fork of Morse-buddy-JohnF by
Morse_Code.h@1:ba9c803c7596, 2013-06-22 (annotated)
- Committer:
- tony1tf
- Date:
- Sat Jun 22 23:13:14 2013 +0000
- Revision:
- 1:ba9c803c7596
- Parent:
- 0:8c725fbd8e0e
- Child:
- 2:260128ae5746
Slowed down attack and decay of sound
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 | 1:ba9c803c7596 | 5 | // Mods for envelope shaping - Tony Abbey 22 June 2013 |
tony1tf | 0:8c725fbd8e0e | 6 | |
tony1tf | 0:8c725fbd8e0e | 7 | #ifndef MORSE_CODE_H |
tony1tf | 0:8c725fbd8e0e | 8 | #define MORSE_CODE_H |
tony1tf | 0:8c725fbd8e0e | 9 | |
tony1tf | 0:8c725fbd8e0e | 10 | #include "Goodies.h" |
tony1tf | 0:8c725fbd8e0e | 11 | |
tony1tf | 0:8c725fbd8e0e | 12 | #define PI 3.141592654 |
tony1tf | 0:8c725fbd8e0e | 13 | |
tony1tf | 0:8c725fbd8e0e | 14 | #define step PI/16 |
tony1tf | 0:8c725fbd8e0e | 15 | |
tony1tf | 0:8c725fbd8e0e | 16 | extern const float sine_wave [ 32 ]; |
tony1tf | 0:8c725fbd8e0e | 17 | |
tony1tf | 0:8c725fbd8e0e | 18 | class Morse_Code : private Goodies { |
tony1tf | 0:8c725fbd8e0e | 19 | |
tony1tf | 0:8c725fbd8e0e | 20 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 21 | |
tony1tf | 0:8c725fbd8e0e | 22 | private: |
tony1tf | 0:8c725fbd8e0e | 23 | |
tony1tf | 0:8c725fbd8e0e | 24 | float u, _WPM_Character, _WPM_Speed, ta, tc, tw; |
tony1tf | 0:8c725fbd8e0e | 25 | |
tony1tf | 0:8c725fbd8e0e | 26 | int _Tone_Frequency; |
tony1tf | 0:8c725fbd8e0e | 27 | |
tony1tf | 0:8c725fbd8e0e | 28 | char _LED_Pin, _Speaker_Pin; |
tony1tf | 0:8c725fbd8e0e | 29 | |
tony1tf | 0:8c725fbd8e0e | 30 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 31 | |
tony1tf | 0:8c725fbd8e0e | 32 | struct { |
tony1tf | 0:8c725fbd8e0e | 33 | |
tony1tf | 0:8c725fbd8e0e | 34 | int last_bit:1; |
tony1tf | 0:8c725fbd8e0e | 35 | |
tony1tf | 0:8c725fbd8e0e | 36 | int last_char:1; |
tony1tf | 0:8c725fbd8e0e | 37 | |
tony1tf | 0:8c725fbd8e0e | 38 | int _Sound:1; |
tony1tf | 0:8c725fbd8e0e | 39 | |
tony1tf | 0:8c725fbd8e0e | 40 | int _Practice:1; |
tony1tf | 0:8c725fbd8e0e | 41 | |
tony1tf | 0:8c725fbd8e0e | 42 | } Morse_Flag; |
tony1tf | 0:8c725fbd8e0e | 43 | |
tony1tf | 0:8c725fbd8e0e | 44 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 45 | |
tony1tf | 0:8c725fbd8e0e | 46 | public: |
tony1tf | 0:8c725fbd8e0e | 47 | |
tony1tf | 0:8c725fbd8e0e | 48 | Morse_Code ( float WPM_Character = 18.0, |
tony1tf | 0:8c725fbd8e0e | 49 | float WPM_Speed = 5.0, |
tony1tf | 0:8c725fbd8e0e | 50 | int Tone_Frequency = 700, |
tony1tf | 0:8c725fbd8e0e | 51 | char LED_Pin = 11, |
tony1tf | 0:8c725fbd8e0e | 52 | char Speaker_Pin = 9 ); |
tony1tf | 0:8c725fbd8e0e | 53 | |
tony1tf | 0:8c725fbd8e0e | 54 | void Sound_On ( void ); |
tony1tf | 0:8c725fbd8e0e | 55 | |
tony1tf | 0:8c725fbd8e0e | 56 | void Sound_Off ( void ); |
tony1tf | 0:8c725fbd8e0e | 57 | |
tony1tf | 0:8c725fbd8e0e | 58 | void Sound_Toggle ( void ); |
tony1tf | 0:8c725fbd8e0e | 59 | |
tony1tf | 0:8c725fbd8e0e | 60 | void Practice_On ( void ); |
tony1tf | 0:8c725fbd8e0e | 61 | |
tony1tf | 0:8c725fbd8e0e | 62 | void Practice_Off ( void ); |
tony1tf | 0:8c725fbd8e0e | 63 | |
tony1tf | 0:8c725fbd8e0e | 64 | void Practice_Toggle ( void ); |
tony1tf | 0:8c725fbd8e0e | 65 | |
tony1tf | 0:8c725fbd8e0e | 66 | int get_Practice ( void ); |
tony1tf | 0:8c725fbd8e0e | 67 | |
tony1tf | 0:8c725fbd8e0e | 68 | char Morse ( char ASCII ); |
tony1tf | 0:8c725fbd8e0e | 69 | |
tony1tf | 0:8c725fbd8e0e | 70 | void Send_Morse ( char Morse ); |
tony1tf | 0:8c725fbd8e0e | 71 | |
tony1tf | 0:8c725fbd8e0e | 72 | char Random_Code ( void ); |
tony1tf | 0:8c725fbd8e0e | 73 | |
tony1tf | 0:8c725fbd8e0e | 74 | void set_Tone ( int frequency ); |
tony1tf | 0:8c725fbd8e0e | 75 | |
tony1tf | 0:8c725fbd8e0e | 76 | int get_Tone ( ); |
tony1tf | 0:8c725fbd8e0e | 77 | |
tony1tf | 0:8c725fbd8e0e | 78 | void Tone_Adjust ( int delta, int limit ); |
tony1tf | 0:8c725fbd8e0e | 79 | |
tony1tf | 0:8c725fbd8e0e | 80 | void set_WPM ( float WPM_Speed ); |
tony1tf | 0:8c725fbd8e0e | 81 | |
tony1tf | 0:8c725fbd8e0e | 82 | float get_WPM ( ); |
tony1tf | 0:8c725fbd8e0e | 83 | |
tony1tf | 0:8c725fbd8e0e | 84 | void WPM_Adjust ( float delta, float limit ); |
tony1tf | 0:8c725fbd8e0e | 85 | |
tony1tf | 0:8c725fbd8e0e | 86 | private: |
tony1tf | 0:8c725fbd8e0e | 87 | |
tony1tf | 0:8c725fbd8e0e | 88 | void Calculate_Morse_Timing ( float s, float c ) ; |
tony1tf | 0:8c725fbd8e0e | 89 | |
tony1tf | 0:8c725fbd8e0e | 90 | void dit ( ); |
tony1tf | 0:8c725fbd8e0e | 91 | |
tony1tf | 0:8c725fbd8e0e | 92 | void dah ( ); |
tony1tf | 0:8c725fbd8e0e | 93 | |
tony1tf | 1:ba9c803c7596 | 94 | void Tone ( int freq_factor, float duration, float multiplier ) ; |
tony1tf | 0:8c725fbd8e0e | 95 | |
tony1tf | 0:8c725fbd8e0e | 96 | }; |
tony1tf | 0:8c725fbd8e0e | 97 | |
tony1tf | 0:8c725fbd8e0e | 98 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 99 | |
tony1tf | 0:8c725fbd8e0e | 100 | #endif |
tony1tf | 0:8c725fbd8e0e | 101 | |
tony1tf | 0:8c725fbd8e0e | 102 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 103 | |
tony1tf | 0:8c725fbd8e0e | 104 |