John's code modified for envelope shaping and different colours

Dependencies:   mbed

Fork of Morse-buddy-JohnF by Tony Abbey

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?

UserRevisionLine numberNew 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