summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cc1111/ao_pins.h1
-rw-r--r--src/core/ao.h7
-rw-r--r--src/core/ao_config.c4
-rw-r--r--src/product/ao_telemini.c13
4 files changed, 25 insertions, 0 deletions
diff --git a/src/cc1111/ao_pins.h b/src/cc1111/ao_pins.h
index e28a7b65..fc6ed3ec 100644
--- a/src/cc1111/ao_pins.h
+++ b/src/cc1111/ao_pins.h
@@ -163,6 +163,7 @@
#define HAS_ADC 1
#define HAS_EEPROM 1
#define HAS_LOG 1
+ #define HAS_FORCE_FREQ 1
#define USE_INTERNAL_FLASH 1
#define HAS_DBG 0
#define IGNITE_ON_P2 0
diff --git a/src/core/ao.h b/src/core/ao.h
index 2e012f08..06daf48f 100644
--- a/src/core/ao.h
+++ b/src/core/ao.h
@@ -682,6 +682,13 @@ ao_igniter_init(void);
* ao_config.c
*/
+#if HAS_FORCE_FREQ
+/*
+ * Set this to force the frequency to 434.550MHz
+ */
+extern __xdata uint8_t ao_force_freq;
+#endif
+
#define AO_CONFIG_MAJOR 1
#define AO_CONFIG_MINOR 11
diff --git a/src/core/ao_config.c b/src/core/ao_config.c
index e0dabcd9..ced8b1f2 100644
--- a/src/core/ao_config.c
+++ b/src/core/ao_config.c
@@ -135,6 +135,10 @@ _ao_config_get(void)
ao_config_dirty = 1;
}
#if HAS_RADIO
+#if HAS_FORCE_FREQ
+ if (ao_force_freq)
+ ao_config.frequency = 434550;
+#endif
ao_config_set_radio();
#endif
ao_config_loaded = 1;
diff --git a/src/product/ao_telemini.c b/src/product/ao_telemini.c
index fa23de01..21551ee9 100644
--- a/src/product/ao_telemini.c
+++ b/src/product/ao_telemini.c
@@ -18,6 +18,8 @@
#include "ao.h"
#include "ao_pins.h"
+__xdata uint8_t ao_force_freq;
+
void
main(void)
{
@@ -33,6 +35,17 @@ main(void)
ao_led_init(LEDS_AVAILABLE);
ao_led_on(AO_LED_RED);
+ /* A hack -- look at the debug clock pin, if it's sitting at
+ * ground, then we force the computer to idle mode instead of
+ * flight mode
+ */
+ if (P2_2 == 0) {
+ ao_flight_force_idle = 1;
+ ao_force_freq = 1;
+ while (P2_2 == 0)
+ ;
+ }
+
ao_timer_init();
ao_adc_init();
ao_cmd_init();