diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cc1111/ao_pins.h | 5 | ||||
| -rw-r--r-- | src/kernel/ao.h | 5 | ||||
| -rw-r--r-- | src/kernel/ao_beep.h | 19 | ||||
| -rw-r--r-- | src/kernel/ao_config.c | 35 | ||||
| -rw-r--r-- | src/kernel/ao_telemetry.h | 6 | ||||
| -rw-r--r-- | src/telemini-v2.0/ao_pins.h | 1 | 
6 files changed, 62 insertions, 9 deletions
| diff --git a/src/cc1111/ao_pins.h b/src/cc1111/ao_pins.h index 5b1586e0..91bf81d2 100644 --- a/src/cc1111/ao_pins.h +++ b/src/cc1111/ao_pins.h @@ -24,6 +24,7 @@  	#define HAS_FLIGHT		1  	#define HAS_USB			1  	#define HAS_BEEP		1 +	#define HAS_BEEP_CONFIG		0  	#define HAS_GPS			1  	#define HAS_SERIAL_1		1  	#define HAS_ADC			1 @@ -58,6 +59,7 @@  	#define HAS_FLIGHT		1  	#define HAS_USB			1  	#define HAS_BEEP		1 +	#define HAS_BEEP_CONFIG		0  	#define HAS_BATTERY_REPORT	1  	#define HAS_GPS			1  	#define HAS_SERIAL_1		1 @@ -95,6 +97,7 @@  	#define HAS_FLIGHT		1  	#define HAS_USB			1  	#define HAS_BEEP		1 +	#define HAS_BEEP_CONFIG		0  	#define HAS_BATTERY_REPORT	1  	#define HAS_GPS			1  	#define HAS_SERIAL_1		1 @@ -212,6 +215,7 @@  	#define HAS_FLIGHT		1  	#define HAS_USB			1  	#define HAS_BEEP		1 +	#define HAS_BEEP_CONFIG		0  	#define HAS_GPS			1  	#define HAS_SERIAL_1		1  	#define HAS_ADC			1 @@ -333,6 +337,7 @@  	#define HAS_FLIGHT		0  	#define HAS_USB			1  	#define HAS_BEEP		1 +	#define HAS_BEEP_CONFIG		0  	#define HAS_SERIAL_1		1  	#define HAS_SERIAL_1_ALT_1	1  	#define HAS_SERIAL_1_ALT_2	0 diff --git a/src/kernel/ao.h b/src/kernel/ao.h index 29ad2603..9169bd84 100644 --- a/src/kernel/ao.h +++ b/src/kernel/ao.h @@ -750,7 +750,7 @@ extern __xdata uint8_t ao_force_freq;  #endif  #define AO_CONFIG_MAJOR	1 -#define AO_CONFIG_MINOR	15 +#define AO_CONFIG_MINOR	16  #define AO_AES_LEN 16 @@ -789,6 +789,9 @@ struct ao_config {  	int16_t		accel_zero_across;	/* minor version 15 */  	int16_t		accel_zero_through;	/* minor version 15 */  #endif +#if HAS_BEEP +	uint8_t		mid_beep;		/* minor version 16 */ +#endif  };  #define AO_IGNITE_MODE_DUAL		0 diff --git a/src/kernel/ao_beep.h b/src/kernel/ao_beep.h index 55f61171..9d6ecf27 100644 --- a/src/kernel/ao_beep.h +++ b/src/kernel/ao_beep.h @@ -18,6 +18,12 @@  #ifndef _AO_BEEP_H_  #define _AO_BEEP_H_ +#ifndef HAS_BEEP_CONFIG +#if defined(USE_EEPROM_CONFIG) && USE_EEPROM_CONFIG || HAS_EEPROM +#define HAS_BEEP_CONFIG	1 +#endif +#endif +  /*   * ao_beep.c   */ @@ -28,9 +34,16 @@   * frequency = 1/2 (24e6/32) / beep   */ -#define AO_BEEP_LOW	150	/* 2500Hz */ -#define AO_BEEP_MID	94	/* 3989Hz */ -#define AO_BEEP_HIGH	75	/* 5000Hz */ +#define AO_BEEP_MID_DEFAULT	94	/* 3989Hz */ + +#if HAS_BEEP_CONFIG +#define AO_BEEP_MID	ao_config.mid_beep +#else +#define AO_BEEP_MID	AO_BEEP_MID_DEFAULT +#endif +#define AO_BEEP_LOW	AO_BEEP_MID * 150 / 94	/* 2500Hz */ +#define AO_BEEP_HIGH	AO_BEEP_MID * 75 / 94	/* 5000Hz */ +  #define AO_BEEP_OFF	0	/* off */  #define AO_BEEP_g	240	/* 1562.5Hz */ diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c index 4482f673..411399d7 100644 --- a/src/kernel/ao_config.c +++ b/src/kernel/ao_config.c @@ -22,6 +22,9 @@  #include <ao_sample.h>  #include <ao_data.h>  #endif +#if HAS_BEEP +#include <ao_beep.h> +#endif  __xdata struct ao_config ao_config;  __pdata uint8_t ao_config_loaded; @@ -171,6 +174,10 @@ _ao_config_get(void)  			ao_config.accel_minus_g = 0;  		}  #endif +#if HAS_BEEP_CONFIG +		if (minor < 16) +			ao_config.mid_beep = AO_BEEP_MID_DEFAULT; +#endif  		ao_config.minor = AO_CONFIG_MINOR;  		ao_config_dirty = 1;  	} @@ -357,7 +364,7 @@ ao_config_accel_calibrate_set(void) __reentrant  	int16_t	accel_across_up = 0, accel_across_down = 0;  	int16_t	accel_through_up = 0, accel_through_down = 0;  #endif -	 +  	ao_cmd_decimal();  	if (ao_cmd_status != ao_cmd_success)  		return; @@ -555,7 +562,7 @@ ao_config_radio_enable_set(void) __reentrant  	_ao_config_edit_finish();  }  #endif /* HAS_RADIO */ -	 +  #if HAS_AES  __xdata uint8_t	ao_config_aes_seq = 1; @@ -650,6 +657,26 @@ ao_config_radio_power_set(void)  #endif +#if HAS_BEEP_CONFIG +void +ao_config_beep_show(void) +{ +	printf ("Beeper setting: %d\n", ao_config.mid_beep); +} + +void +ao_config_beep_set(void) +{ +	ao_cmd_decimal(); +	if (ao_cmd_status != ao_cmd_success) +		return; +	_ao_config_edit_start(); +	ao_config.mid_beep = ao_cmd_lex_i; +	_ao_config_edit_finish(); +} +#endif + +  struct ao_config_var {  	__code char	*str;  	void		(*set)(void) __reentrant; @@ -720,6 +747,10 @@ __code struct ao_config_var ao_config_vars[] = {  	{ "A <secs>\0APRS packet interval (0 disable)",  	  ao_config_aprs_set, ao_config_aprs_show },  #endif +#if HAS_BEEP_CONFIG +	{ "b <val>\0Configure beeper tone (freq = 1/2 (24e6/32) / beep", +	  ao_config_beep_set, ao_config_beep_show }, +#endif  	{ "s\0Show",  	  ao_config_show,		0 },  #if HAS_EEPROM diff --git a/src/kernel/ao_telemetry.h b/src/kernel/ao_telemetry.h index 237a35ab..fe07c2af 100644 --- a/src/kernel/ao_telemetry.h +++ b/src/kernel/ao_telemetry.h @@ -154,7 +154,7 @@ struct ao_telemetry_companion {  	uint16_t				companion_data[AO_COMPANION_MAX_CHANNELS];	/*  8 */  	/* 32 */  }; -	 +  #define AO_TELEMETRY_MEGA_SENSOR	0x08  struct ao_telemetry_mega_sensor { @@ -181,7 +181,7 @@ struct ao_telemetry_mega_sensor {  	int16_t		mag_z;		/* 30 */  	/* 32 */  }; -	 +  #define AO_TELEMETRY_MEGA_DATA		0x09  struct ao_telemetry_mega_data { @@ -231,7 +231,7 @@ struct ao_telemetry_metrum_sensor {  	uint8_t		pad[6];		/* 26 */  	/* 32 */  }; -	 +  #define AO_TELEMETRY_METRUM_DATA	0x0B  struct ao_telemetry_metrum_data { diff --git a/src/telemini-v2.0/ao_pins.h b/src/telemini-v2.0/ao_pins.h index dc18aff7..1b4f602f 100644 --- a/src/telemini-v2.0/ao_pins.h +++ b/src/telemini-v2.0/ao_pins.h @@ -24,6 +24,7 @@  #define HAS_USB			1  #define USB_FORCE_FLIGHT_IDLE	1  #define HAS_BEEP		1 +#define HAS_BEEP_CONFIG		0  #define HAS_BATTERY_REPORT	1  #define HAS_GPS			0  #define HAS_SERIAL_1		0 | 
