X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao_config.c;h=319febb94891b24be2b98fc37b004376b23d6afe;hp=e97b7eb121192a41d1876fa530e9188d828e75e5;hb=0e67b6890dd3a06665239f8dfd2e69266d055e46;hpb=00891b40754962ef6530b237ef52017bb58112d5 diff --git a/src/ao_config.c b/src/ao_config.c index e97b7eb1..319febb9 100644 --- a/src/ao_config.c +++ b/src/ao_config.c @@ -27,7 +27,11 @@ __xdata uint8_t ao_config_mutex; #define AO_CONFIG_DEFAULT_CALLSIGN "N0CALL" #define AO_CONFIG_DEFAULT_ACCEL_ZERO_G 16000 #define AO_CONFIG_DEFAULT_APOGEE_DELAY 0 +#if USE_INTERNAL_EEPROM +#define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ao_storage_config +#else #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 192 * (uint32_t) 1024) +#endif #if HAS_EEPROM static void @@ -70,6 +74,7 @@ _ao_config_get(void) sizeof(AO_CONFIG_DEFAULT_CALLSIGN) - 1); ao_config.apogee_delay = AO_CONFIG_DEFAULT_APOGEE_DELAY; ao_config.radio_cal = ao_radio_cal; + ao_config.flight_log_max = AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX; ao_config_dirty = 1; } if (ao_config.minor < AO_CONFIG_MINOR) { @@ -185,6 +190,7 @@ ao_config_main_deploy_set(void) __reentrant ao_config_main_deploy_show(); } +#if HAS_ACCEL void ao_config_accel_calibrate_show(void) __reentrant { @@ -209,10 +215,10 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant puts("Calibrating..."); flush(); i = ACCEL_CALIBRATE_SAMPLES; accel_total = 0; - cal_adc_ring = ao_adc_head; + cal_adc_ring = ao_sample_adc; while (i) { - ao_sleep(&ao_adc_ring); - while (i && cal_adc_ring != ao_adc_head) { + ao_sleep(DATA_TO_XDATA(&ao_sample_adc)); + while (i && cal_adc_ring != ao_sample_adc) { accel_total += (int32_t) ao_adc_ring[cal_adc_ring].accel; cal_adc_ring = ao_adc_ring_next(cal_adc_ring); i--; @@ -251,6 +257,7 @@ ao_config_accel_calibrate_set(void) __reentrant ao_mutex_put(&ao_config_mutex); ao_config_accel_calibrate_show(); } +#endif /* HAS_ACCEL */ void ao_config_apogee_delay_show(void) __reentrant @@ -355,10 +362,10 @@ __code struct ao_config_var ao_config_vars[] = { "r Set radio channel (freq = 434.550 + channel * .1)" }, { 'c', ao_config_callsign_set, ao_config_callsign_show, "c Set callsign broadcast in each packet (8 char max)" }, -#if HAS_ADC +#if HAS_ACCEL { 'a', ao_config_accel_calibrate_set, ao_config_accel_calibrate_show, "a <+g> <-g> Set accelerometer calibration (0 for auto)" }, -#endif /* HAS_ADC */ +#endif /* HAS_ACCEL */ { 'f', ao_config_radio_cal_set, ao_config_radio_cal_show, "f Set radio calibration value (cal = rf/(xtal/2^16))" }, #if HAS_EEPROM @@ -438,8 +445,8 @@ ao_config_write(void) __reentrant #endif __code struct ao_cmds ao_config_cmds[] = { - { 'c', ao_config_set, "c Set config variable (? for help, s to show)" }, - { '\0', ao_config_set, NULL }, + { ao_config_set, "c \0Set config variable (? for help, s to show)" }, + { 0, NULL }, }; void