John's code modified for envelope shaping and different colours
Fork of Morse-buddy-JohnF by
Morse_Code.h@3:cbd036b6942b, 2013-06-27 (annotated)
- Committer:
- tony1tf
- Date:
- Thu Jun 27 23:21:46 2013 +0000
- Revision:
- 3:cbd036b6942b
- Parent:
- 2:260128ae5746
Different colours for each instantiation - fixed
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 | 2:260128ae5746 | 5 | // Mods for envelope shaping and different coloured LEDs - Tony Abbey 27 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 | 2:260128ae5746 | 28 | char _colour ; |
tony1tf | 2:260128ae5746 | 29 | |
tony1tf | 0:8c725fbd8e0e | 30 | |
tony1tf | 0:8c725fbd8e0e | 31 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 32 | |
tony1tf | 0:8c725fbd8e0e | 33 | struct { |
tony1tf | 0:8c725fbd8e0e | 34 | |
tony1tf | 0:8c725fbd8e0e | 35 | int last_bit:1; |
tony1tf | 0:8c725fbd8e0e | 36 | |
tony1tf | 0:8c725fbd8e0e | 37 | int last_char:1; |
tony1tf | 0:8c725fbd8e0e | 38 | |
tony1tf | 0:8c725fbd8e0e | 39 | int _Sound:1; |
tony1tf | 0:8c725fbd8e0e | 40 | |
tony1tf | 0:8c725fbd8e0e | 41 | int _Practice:1; |
tony1tf | 0:8c725fbd8e0e | 42 | |
tony1tf | 0:8c725fbd8e0e | 43 | } Morse_Flag; |
tony1tf | 0:8c725fbd8e0e | 44 | |
tony1tf | 0:8c725fbd8e0e | 45 | //=================================================================== |
tony1tf | 0:8c725fbd8e0e | 46 | |
tony1tf | 0:8c725fbd8e0e | 47 | public: |
tony1tf | 0:8c725fbd8e0e | 48 | |
tony1tf | 0:8c725fbd8e0e | 49 | Morse_Code ( float WPM_Character = 18.0, |
tony1tf | 0:8c725fbd8e0e | 50 | float WPM_Speed = 5.0, |
tony1tf | 2:260128ae5746 | 51 | int Tone_Frequency = 700, |
tony1tf | 2:260128ae5746 | 52 | char colour = 1 ); |
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 |