diff --git a/application.c b/application.c index a421197..10ea65c 100644 --- a/application.c +++ b/application.c @@ -65,6 +65,12 @@ const uint8_t channels[] = {ADC_CHANNEL17, ADC_CHANNEL(TARGET_CHANNEL), ADC_CHAN #define MUX_S2_PIN PB0 /**< pin to set S2 bit of analog multiplexer */ #define MUX_S3_PIN PB1 /**< pin to set S3 bit of analog multiplexer */ +#define SIGNAL_NUMBERS 12 /**< number of target signals */ +static const char* signal_names[] = {"B12", "B13", "B14", "B15", "A8 ", "A9 ", "A10", "A15", "B3 ", "B4 ", "B5 ", "B6 "}; /**< names of pin connected to target signals */ +static const uint32_t signal_rccs[] = {GPIO_RCC(PB12), GPIO_RCC(PB13), GPIO_RCC(PB14), GPIO_RCC(PB15), GPIO_RCC(PA8), GPIO_RCC(PA9), GPIO_RCC(PA10), GPIO_RCC(PA15), GPIO_RCC(PB3), GPIO_RCC(PB4), GPIO_RCC(PB5), GPIO_RCC(PB6)}; /**< RCC for signal pin ports */ +static const uint32_t signal_ports[] = {GPIO_PORT(PB12), GPIO_PORT(PB13), GPIO_PORT(PB14), GPIO_PORT(PB15), GPIO_PORT(PA8), GPIO_PORT(PA9), GPIO_PORT(PA10), GPIO_PORT(PA15), GPIO_PORT(PB3), GPIO_PORT(PB4), GPIO_PORT(PB5), GPIO_PORT(PB6)}; /**< GPIO ports for signal pin */ +static const uint32_t signal_pins[] = {GPIO_PIN(PB12), GPIO_PIN(PB13), GPIO_PIN(PB14), GPIO_PIN(PB15), GPIO_PIN(PA8), GPIO_PIN(PA9), GPIO_PIN(PA10), GPIO_PIN(PA15), GPIO_PIN(PB3), GPIO_PIN(PB4), GPIO_PIN(PB5), GPIO_PIN(PB6)}; /**< GPIO pins for signal pin */ + size_t putc(char c) { size_t length = 0; // number of characters printed @@ -646,6 +652,13 @@ void main(void) mux_select(-1); // ensure it is disabled puts("OK\n"); + puts("setup signal pins: "); + for (uint8_t i = 0; i < SIGNAL_NUMBERS; i++) { + rcc_periph_clock_enable(signal_rccs[i]); // enable clock for port domain + gpio_mode_setup(signal_ports[i], GPIO_MODE_INPUT, GPIO_PUPD_NONE, signal_pins[i]); // ensure pin is floating input + } + puts("OK\n"); + puts("setup ADC to measure voltages: "); rcc_periph_clock_enable(RCC_ADC1); // enable clock for ADC domain adc_power_off(ADC1); // switch off ADC while configuring it