John's code modified for envelope shaping and different colours

Dependencies:   mbed

Fork of Morse-buddy-JohnF by Tony Abbey

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?

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