// // WARNING: DO NOT EDIT THIS FILE // This file has been generated from the target's JSON hardware description // #include "stm32_gpio.h" static const stm32_adc_input_t _ADC_inputs[] = { {% for input in adc_inputs.inputs %} { // {{ input.name }} // ADC_INPUT_{{ input.type }}, {{ input.gpio if input.gpio else 'nullptr' }}, {{ input.pin if input.gpio else '0' }}, {{ input.channel if input.channel else '0' }}, {{ '1 // inverted' if input.inverted else '0 // normal' }} }, {% endfor %} }; {% for adc in adc_inputs.adcs %} {% set inputs = adc_inputs.inputs | selectattr('adc', '==', adc.name) | selectattr('channel','defined') %} static const uint8_t _ADC_{{ adc.name }}_channels[] = { {% for input in inputs %} {{ adc_index[input.name] }}, // {{ input.name }} {% endfor %} }; {% endfor %} {% set offset = namespace(value=0) %} static const stm32_adc_t _ADC_adc[] = { {% for adc in adc_inputs.adcs | selectattr('name', '!=', 'SPI') %} {% set inputs = adc_inputs.inputs | selectattr('adc', '==', adc.name) | selectattr('channel','defined') %} {% set input_count = inputs | list | count %} { {{ adc.adc }}, {{ adc.dma if adc.dma else 'nullptr' }}, {{ adc.dma_channel if adc.dma else '0' }}, {{ adc.dma_stream if adc.dma else '0' }}, {{ adc.dma_stream_irq if adc.dma else '(IRQn_Type)-1' }}, _ADC_{{ adc.name }}_channels, {{ offset.value }}, {{ input_count }}, {{ adc.sample_time if adc.sample_time else '0' }} }, {% set offset.value = offset.value + input_count %} {% endfor %} }; static const stm32_spi_adc_t _ADC_spi[] = { {% for adc in adc_inputs.adcs | selectattr('name', '==', 'SPI') %} {% set inputs = adc_inputs.inputs | selectattr('adc', '==', adc.name) | selectattr('channel','defined') %} {% set input_count = inputs | list | count %} { .spi = { {{ adc.adc }}, {{ adc.gpio_pin_sck }}, {{ adc.gpio_pin_miso }}, {{ adc.gpio_pin_mosi }}, {{ adc.gpio_pin_cs }}, }, _ADC_{{ adc.name }}_channels, {{ input_count }} }, {% endfor %} }; {% for adc in adc_inputs.adcs | selectattr('name', '!=', 'SPI') %} {% if adc.dma %} extern "C" void {{ adc.dma_stream_irq_handler }} (void) { stm32_hal_adc_dma_isr(&_ADC_adc[{{ loop.index0 }}]); } {% endif %} {% endfor %} extern "C" void ADC_IRQHandler() { {% for adc in adc_inputs.adcs | selectattr('name', '!=', 'SPI') %} stm32_hal_adc_isr(&_ADC_adc[{{ loop.index0 }}]); {% endfor %} } #if defined(STM32H7) extern "C" void ADC3_IRQHandler() { {% for adc in adc_inputs.adcs | selectattr('name', '!=', 'SPI') %} stm32_hal_adc_isr(&_ADC_adc[{{ loop.index0 }}]); {% endfor %} } #endif {% for adc_gpio, adc_inputs in adc_gpios.items() | sort %} static const uint32_t _ADC_{{ adc_gpio }}_pins[] = { {% for input in adc_inputs %} {{ input.pin }}, {% endfor %} }; {% endfor %} static const stm32_adc_gpio_t _ADC_GPIOs[] = { {% for adc_gpio, adc_inputs in adc_gpios.items() | sort %} { {{ adc_gpio }}, _ADC_{{ adc_gpio }}_pins, {{ adc_inputs|count }} }, {% endfor %} };