#define USE_STORAGE_CONFIG 0
#define HAS_USB 1
#define HAS_BEEP 1
+#define BEEPER_TIMER 3
+#define BEEPER_CHANNEL 1
+#define BEEPER_PORT (&stm_gpioc)
+#define BEEPER_PIN 6
#define HAS_RADIO 1
#define HAS_RADIO_RATE 1
#define HAS_TELEMETRY 0
#define HAS_AES 1
+#define HAS_STATIC_TEST 0
#define HAS_SPI_1 0
#define SPI_1_PA5_PA6_PA7 0
#define LOW_LEVEL_DEBUG 0
-#define LED_PER_LED 1
-#define LED_TYPE uint16_t
-
-#define LED_ENABLE_BITS ((1 << STM_RCC_AHBENR_GPIOAEN) | \
- (1 << STM_RCC_AHBENR_GPIOCEN) | \
- (1 << STM_RCC_AHBENR_GPIODEN) | \
- (1 << STM_RCC_AHBENR_GPIOEEN))
+#define HAS_LED 1
/* PC7 - PC9, LED 0 - 2 */
#define LED_0_PORT (&stm_gpioc)
#define LED_15_PORT (&stm_gpioa)
#define LED_15_PIN 5
-#define LED_PIN_RED 0
-#define LED_PIN_AMBER 1
-#define LED_PIN_GREEN 2
-#define LED_PIN_BOX 3
-#define LED_PIN_PAD 4
-#define LED_PIN_DRAG 5
-#define LED_PIN_CONTINUITY_7 6
-#define LED_PIN_CONTINUITY_6 7
-#define LED_PIN_CONTINUITY_5 8
-#define LED_PIN_CONTINUITY_4 9
-#define LED_PIN_CONTINUITY_3 10
-#define LED_PIN_CONTINUITY_2 11
-#define LED_PIN_CONTINUITY_1 12
-#define LED_PIN_CONTINUITY_0 13
-#define LED_PIN_REMOTE_ARM 14
-#define LED_PIN_FIRE 15
-#define AO_LED_RED (1 << LED_PIN_RED)
-#define AO_LED_AMBER (1 << LED_PIN_AMBER)
-#define AO_LED_GREEN (1 << LED_PIN_GREEN)
-#define AO_LED_BOX (1 << LED_PIN_BOX)
-#define AO_LED_PAD (1 << LED_PIN_PAD)
-#define AO_LED_DRAG (1 << LED_PIN_DRAG)
-#define AO_LED_CONTINUITY_7 (1 << LED_PIN_CONTINUITY_7)
-#define AO_LED_CONTINUITY_6 (1 << LED_PIN_CONTINUITY_6)
-#define AO_LED_CONTINUITY_5 (1 << LED_PIN_CONTINUITY_5)
-#define AO_LED_CONTINUITY_4 (1 << LED_PIN_CONTINUITY_4)
-#define AO_LED_CONTINUITY_3 (1 << LED_PIN_CONTINUITY_3)
-#define AO_LED_CONTINUITY_2 (1 << LED_PIN_CONTINUITY_2)
-#define AO_LED_CONTINUITY_1 (1 << LED_PIN_CONTINUITY_1)
-#define AO_LED_CONTINUITY_0 (1 << LED_PIN_CONTINUITY_0)
+#define AO_LED_RED AO_LED_0
+#define AO_LED_AMBER AO_LED_1
+#define AO_LED_GREEN AO_LED_2
+#define AO_LED_BOX AO_LED_3
+#define AO_LED_PAD AO_LED_4
+#define AO_LED_DRAG AO_LED_5
+#define AO_LED_CONTINUITY_7 AO_LED_6
+#define AO_LED_CONTINUITY_6 AO_LED_7
+#define AO_LED_CONTINUITY_5 AO_LED_8
+#define AO_LED_CONTINUITY_4 AO_LED_9
+#define AO_LED_CONTINUITY_3 AO_LED_10
+#define AO_LED_CONTINUITY_2 AO_LED_11
+#define AO_LED_CONTINUITY_1 AO_LED_12
+#define AO_LED_CONTINUITY_0 AO_LED_13
#define AO_LED_CONTINUITY_NUM 8
-#define AO_LED_REMOTE_ARM (1 << LED_PIN_REMOTE_ARM)
-#define AO_LED_FIRE (1 << LED_PIN_FIRE)
-
-#define LEDS_AVAILABLE (AO_LED_RED | \
- AO_LED_AMBER | \
- AO_LED_GREEN | \
- AO_LED_BOX | \
- AO_LED_PAD | \
- AO_LED_DRAG | \
- AO_LED_CONTINUITY_7 | \
- AO_LED_CONTINUITY_6 | \
- AO_LED_CONTINUITY_5 | \
- AO_LED_CONTINUITY_4 | \
- AO_LED_CONTINUITY_3 | \
- AO_LED_CONTINUITY_2 | \
- AO_LED_CONTINUITY_1 | \
- AO_LED_CONTINUITY_0 | \
- AO_LED_REMOTE_ARM | \
- AO_LED_FIRE)
+#define AO_LED_REMOTE_ARM AO_LED_14
+#define AO_LED_FIRE AO_LED_15
/* LCD displays */
*/
#define AO_QUADRATURE_COUNT 1
-#define AO_QUADRATURE_DEBOUNCE 1
+#define AO_QUADRATURE_DEBOUNCE 0
+#define AO_QUADRATURE_SINGLE_CODE 1
#define AO_QUADRATURE_0_PORT &stm_gpioe
#define AO_QUADRATURE_0_A 15
#define AO_BUTTON_COUNT 9
#define AO_BUTTON_MODE AO_EXTI_MODE_PULL_UP
-#define AO_BUTTON_MODE_SELECT 0
+#define AO_BUTTON_DRAG_MODE 0
#define AO_BUTTON_0_PORT &stm_gpioe
#define AO_BUTTON_0 1
#define AO_BUTTON_DRAG_SELECT 1
#define AO_BUTTON_1_PORT &stm_gpioe
-#define AO_BUTTON_1 1
+#define AO_BUTTON_1 0
#define AO_BUTTON_SPARE1 2
#define AO_BUTTON_2_PORT &stm_gpiob
#define AO_BUTTON_7_PORT &stm_gpiod
#define AO_BUTTON_7 11
-#define AO_BUTTON_SELECT 8
+#define AO_BUTTON_ENCODER_SELECT 8
#define AO_BUTTON_8_PORT &stm_gpioe
#define AO_BUTTON_8 13
+/* ADC */
+
+struct ao_adc {
+ int16_t v_batt;
+};
+
+#define AO_ADC_DUMP(p) \
+ printf("batt: %5d\n", (p)->v_batt)
+
+#define HAS_ADC_SINGLE 1
+#define HAS_ADC_TEMP 0
+#define HAS_BATTERY_REPORT 1
+
+#define AO_ADC_V_BATT 0
+#define AO_ADC_V_BATT_PORT (&stm_gpioa)
+#define AO_ADC_V_BATT_PIN 0
+
+#define AO_ADC_RCC_AHBENR (1 << STM_RCC_AHBENR_GPIOAEN)
+
+#define AO_ADC_PIN0_PORT AO_ADC_V_BATT_PORT
+#define AO_ADC_PIN0_PIN AO_ADC_V_BATT_PIN
+
+#define AO_ADC_SQ1 AO_ADC_V_BATT
+
+#define AO_NUM_ADC 1
+
+/*
+ * Voltage divider on ADC battery sampler
+ */
+#define AO_BATTERY_DIV_PLUS 15 /* 15k */
+#define AO_BATTERY_DIV_MINUS 27 /* 27k */
+
+/*
+ * ADC reference in decivolts
+ */
+#define AO_ADC_REFERENCE_DV 33
+
#endif /* _AO_PINS_H_ */