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
 | 
			
		||||
  radio.initialize();
 | 
			
		||||
  radio.setRfPower(0);
 | 
			
		||||
  
 | 
			
		||||
  radio.setMorseFreq(400);
 | 
			
		||||
 | 
			
		||||
  // Configure the HamShield to transmit and recieve on 446.000MHz
 | 
			
		||||
  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};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unsigned int morse_freq = 600;
 | 
			
		||||
 | 
			
		||||
/* morse code lookup table */
 | 
			
		||||
// This is the Morse table in reverse binary format.
 | 
			
		||||
// 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 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 */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1308,10 +1322,10 @@ void HamShield::morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]) {
 | 
			
		|||
    if(bits) { // If it is a valid character...
 | 
			
		||||
      do {
 | 
			
		||||
        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);
 | 
			
		||||
        } else {
 | 
			
		||||
          tone(HAMSHIELD_PWM_PIN, 600, HAMSHIELD_MORSE_DOT);
 | 
			
		||||
          tone(HAMSHIELD_PWM_PIN, morse_freq, HAMSHIELD_MORSE_DOT);
 | 
			
		||||
          delay(HAMSHIELD_MORSE_DOT);
 | 
			
		||||
        }
 | 
			
		||||
	tone(HAMSHIELD_PWM_PIN, 6000, HAMSHIELD_MORSE_DOT);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -481,6 +481,8 @@ class HamShield {
 | 
			
		|||
        void buttonMode(uint8_t mode);
 | 
			
		||||
        static void isr_ptt();
 | 
			
		||||
        static void isr_reset();
 | 
			
		||||
		unsigned int getMorseFreq();
 | 
			
		||||
		void setMorseFreq(unsigned int morse_freq_hz);
 | 
			
		||||
		void morseOut(char buffer[HAMSHIELD_MORSE_BUFFER_SIZE]);
 | 
			
		||||
		uint8_t morseLookup(char letter);
 | 
			
		||||
        bool waitForChannel(long timeout, long breakwindow, int setRSSI);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue