make morse tone freq user settable
This commit is contained in:
		
							parent
							
								
									4ff3f7d9d0
								
							
						
					
					
						commit
						5874e6b8e5
					
				| 
						 | 
					@ -52,6 +52,8 @@ void setup() {
 | 
				
			||||||
  // Tell the HamShield to start up
 | 
					  // Tell the HamShield to start up
 | 
				
			||||||
  radio.initialize();
 | 
					  radio.initialize();
 | 
				
			||||||
  radio.setRfPower(0);
 | 
					  radio.setRfPower(0);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  radio.setMorseFreq(400);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Configure the HamShield to transmit and recieve on 446.000MHz
 | 
					  // Configure the HamShield to transmit and recieve on 446.000MHz
 | 
				
			||||||
  radio.frequency(438000);
 | 
					  radio.frequency(438000);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,9 @@ const uint32_t MURS[] PROGMEM = {0,151820,151880,151940,154570,154600};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint32_t WX[] PROGMEM = {0,162550,162400,162475,162425,162450,162500,162525};
 | 
					const uint32_t WX[] PROGMEM = {0,162550,162400,162475,162425,162450,162500,162525};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned int morse_freq = 600;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* morse code lookup table */
 | 
					/* morse code lookup table */
 | 
				
			||||||
// This is the Morse table in reverse binary format.
 | 
					// This is the Morse table in reverse binary format.
 | 
				
			||||||
// It will occupy 108 bytes of memory (or program memory if defined)
 | 
					// It will occupy 108 bytes of memory (or program memory if defined)
 | 
				
			||||||
| 
						 | 
					@ -1283,6 +1286,17 @@ bool HamShield::waitForChannel(long timeout = 0, long breakwindow = 0, int setRS
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Get current morse code tone frequency (in Hz)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned int HamShield::getMorseFreq() {
 | 
				
			||||||
 | 
						return morse_freq;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Set current morse code tone frequency (in Hz)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void HamShield::setMorseFreq(unsigned int morse_freq_hz) {
 | 
				
			||||||
 | 
						morse_freq = morse_freq_hz;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Morse code out, blocking */
 | 
					/* Morse code out, blocking */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1308,10 +1322,10 @@ void HamShield::morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]) {
 | 
				
			||||||
    if(bits) { // If it is a valid character...
 | 
					    if(bits) { // If it is a valid character...
 | 
				
			||||||
      do {
 | 
					      do {
 | 
				
			||||||
        if(bits & 1) {
 | 
					        if(bits & 1) {
 | 
				
			||||||
          tone(HAMSHIELD_PWM_PIN, 600, HAMSHIELD_MORSE_DOT * 3);
 | 
					          tone(HAMSHIELD_PWM_PIN, morse_freq, HAMSHIELD_MORSE_DOT * 3);
 | 
				
			||||||
          delay(HAMSHIELD_MORSE_DOT*3);
 | 
					          delay(HAMSHIELD_MORSE_DOT*3);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          tone(HAMSHIELD_PWM_PIN, 600, HAMSHIELD_MORSE_DOT);
 | 
					          tone(HAMSHIELD_PWM_PIN, morse_freq, HAMSHIELD_MORSE_DOT);
 | 
				
			||||||
          delay(HAMSHIELD_MORSE_DOT);
 | 
					          delay(HAMSHIELD_MORSE_DOT);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
	tone(HAMSHIELD_PWM_PIN, 6000, HAMSHIELD_MORSE_DOT);
 | 
						tone(HAMSHIELD_PWM_PIN, 6000, HAMSHIELD_MORSE_DOT);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -481,6 +481,8 @@ class HamShield {
 | 
				
			||||||
        void buttonMode(uint8_t mode);
 | 
					        void buttonMode(uint8_t mode);
 | 
				
			||||||
        static void isr_ptt();
 | 
					        static void isr_ptt();
 | 
				
			||||||
        static void isr_reset();
 | 
					        static void isr_reset();
 | 
				
			||||||
 | 
							unsigned int getMorseFreq();
 | 
				
			||||||
 | 
							void setMorseFreq(unsigned int morse_freq_hz);
 | 
				
			||||||
		void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
 | 
							void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
 | 
				
			||||||
		uint8_t morseLookup(char letter);
 | 
							uint8_t morseLookup(char letter);
 | 
				
			||||||
        bool waitForChannel(long timeout, long breakwindow, int setRSSI);
 | 
					        bool waitForChannel(long timeout, long breakwindow, int setRSSI);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue