From 07adf66bbbe7175fd11a041980f7d48c579b830f Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Thu, 4 Aug 2016 00:55:16 +0100 Subject: [PATCH] Optimisation of driver header files --- src/main/config/config.c | 1 + src/main/drivers/accgyro_mma845x.c | 2 +- src/main/drivers/adc.c | 2 + src/main/drivers/adc.h | 2 +- src/main/drivers/adc_impl.h | 6 +-- src/main/drivers/barometer_spi_bmp280.c | 2 + src/main/drivers/bus_i2c.h | 4 +- src/main/drivers/bus_i2c_soft.c | 2 +- src/main/drivers/bus_i2c_stm32f30x.c | 5 +- src/main/drivers/bus_spi.h | 5 +- src/main/drivers/compass_hmc5883l.h | 2 +- src/main/drivers/dma.c | 4 +- src/main/drivers/dma_stm32f4xx.c | 4 +- src/main/drivers/flash_m25p16.c | 7 +-- src/main/drivers/flash_m25p16.h | 2 +- src/main/drivers/gyro_sync.c | 6 +-- src/main/drivers/io.h | 24 +-------- src/main/drivers/io_types.h | 28 +++++++++++ src/main/drivers/light_ws2811strip.c | 4 +- .../drivers/light_ws2811strip_stm32f10x.c | 3 +- .../drivers/light_ws2811strip_stm32f30x.c | 2 +- src/main/drivers/max7456.c | 15 +++--- src/main/drivers/pwm_mapping.h | 5 +- src/main/drivers/pwm_rx.c | 2 +- src/main/drivers/rcc.h | 4 +- src/main/drivers/rcc_types.h | 4 ++ src/main/drivers/sdcard.c | 4 +- src/main/drivers/serial_usb_vcp.c | 4 +- src/main/drivers/sonar_hcsr04.h | 3 +- src/main/drivers/sound_beeper.h | 2 +- src/main/drivers/timer.c | 2 +- src/main/drivers/timer.h | 9 ++-- src/main/drivers/timer_stm32f10x.c | 5 ++ src/main/drivers/timer_stm32f30x.c | 5 ++ src/main/drivers/timer_stm32f4xx.c | 7 ++- src/main/drivers/transponder_ir.c | 6 +-- src/main/drivers/transponder_ir_stm32f30x.c | 6 +-- src/main/drivers/vtx_rtc6705.c | 6 +-- src/main/drivers/vtx_soft_spi_rtc6705.c | 7 +-- src/main/io/serial_4way_avrootloader.c | 2 + src/main/main.c | 1 + src/main/sensors/initialisation.c | 2 +- src/main/target/AIORACERF3/target.c | 1 + src/main/target/AIR32/target.c | 1 + src/main/target/ALIENFLIGHTF1/target.c | 1 + src/main/target/ALIENFLIGHTF1/target.h | 1 + src/main/target/ALIENFLIGHTF3/target.c | 1 + src/main/target/ALIENFLIGHTF3/target.h | 3 +- src/main/target/ALIENFLIGHTF4/target.c | 1 + src/main/target/BLUEJAYF4/target.c | 1 + src/main/target/CC3D/target.c | 1 + src/main/target/CHEBUZZF3/target.c | 1 + src/main/target/CJMCU/target.c | 1 + src/main/target/CJMCU/target.h | 1 + src/main/target/COLIBRI_RACE/target.c | 1 + src/main/target/DOGE/target.c | 1 + src/main/target/DOGE/target.h | 9 ++-- src/main/target/EUSTM32F103RC/target.c | 1 + src/main/target/EUSTM32F103RC/target.h | 1 + src/main/target/F4BY/target.c | 49 ++++++++++--------- src/main/target/F4BY/target.h | 3 +- src/main/target/FURYF3/target.c | 1 + src/main/target/FURYF4/target.c | 1 + src/main/target/FURYF4/target.h | 3 +- src/main/target/IRCFUSIONF3/target.c | 1 + src/main/target/IRCFUSIONF3/target.h | 3 +- src/main/target/KISSFC/target.c | 1 + src/main/target/KISSFC/target.h | 3 +- src/main/target/LUX_RACE/target.c | 1 + src/main/target/MICROSCISKY/target.c | 1 + src/main/target/MICROSCISKY/target.h | 1 + src/main/target/MOTOLAB/target.c | 1 + src/main/target/NAZE/target.c | 1 + src/main/target/NAZE/target.h | 1 + src/main/target/OLIMEXINO/target.c | 1 + src/main/target/OLIMEXINO/target.h | 1 + src/main/target/OMNIBUS/target.c | 1 + src/main/target/OMNIBUSF4/target.c | 1 + src/main/target/PIKOBLX/target.c | 1 + src/main/target/PIKOBLX/target.h | 3 +- src/main/target/PORT103R/target.c | 1 + src/main/target/PORT103R/target.h | 1 + src/main/target/REVO/target.c | 1 + src/main/target/REVONANO/target.c | 1 + src/main/target/RMDO/target.c | 1 + src/main/target/SINGULARITY/target.c | 1 + src/main/target/SINGULARITY/target.h | 3 +- src/main/target/SIRINFPV/target.c | 1 + src/main/target/SPARKY/target.c | 1 + src/main/target/SPRACINGF3/target.c | 1 + src/main/target/SPRACINGF3EVO/target.c | 1 + src/main/target/SPRACINGF3MINI/target.c | 1 + src/main/target/STM32F3DISCOVERY/target.c | 1 + src/main/target/STM32F3DISCOVERY/target.h | 1 + src/main/target/X_RACERSPI/target.c | 1 + src/main/target/X_RACERSPI/target.h | 3 +- src/main/target/ZCOREF3/target.c | 1 + src/main/target/ZCOREF3/target.h | 1 - src/main/telemetry/frsky.c | 2 + src/main/telemetry/telemetry.c | 2 +- 100 files changed, 212 insertions(+), 138 deletions(-) create mode 100644 src/main/drivers/io_types.h create mode 100644 src/main/drivers/rcc_types.h diff --git a/src/main/config/config.c b/src/main/config/config.c index dcb0ce85c..1af50acbc 100755 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -23,6 +23,7 @@ #include "debug.h" #include "build_config.h" +#include "debug.h" #include "blackbox/blackbox_io.h" diff --git a/src/main/drivers/accgyro_mma845x.c b/src/main/drivers/accgyro_mma845x.c index 202b90e80..69a82a0ad 100644 --- a/src/main/drivers/accgyro_mma845x.c +++ b/src/main/drivers/accgyro_mma845x.c @@ -21,7 +21,7 @@ #include "platform.h" #include "system.h" -#include "gpio.h" +#include "io.h" #include "bus_i2c.h" #include "sensor.h" diff --git a/src/main/drivers/adc.c b/src/main/drivers/adc.c index a65abf912..6bba10939 100644 --- a/src/main/drivers/adc.c +++ b/src/main/drivers/adc.c @@ -27,6 +27,8 @@ #include "adc.h" #include "adc_impl.h" +#include "common/utils.h" + //#define DEBUG_ADC_CHANNELS #ifdef USE_ADC diff --git a/src/main/drivers/adc.h b/src/main/drivers/adc.h index 55914a336..47a4b52a0 100644 --- a/src/main/drivers/adc.h +++ b/src/main/drivers/adc.h @@ -17,7 +17,7 @@ #pragma once -#include "io.h" +#include "io_types.h" typedef enum { ADC_BATTERY = 0, diff --git a/src/main/drivers/adc_impl.h b/src/main/drivers/adc_impl.h index 146ada62b..c89dc1bf5 100644 --- a/src/main/drivers/adc_impl.h +++ b/src/main/drivers/adc_impl.h @@ -17,8 +17,8 @@ #pragma once -#include "io.h" -#include "rcc.h" +#include "io_types.h" +#include "rcc_types.h" #if defined(STM32F4) #define ADC_TAG_MAP_COUNT 16 @@ -65,4 +65,4 @@ extern const adcTagMap_t adcTagMap[ADC_TAG_MAP_COUNT]; extern adc_config_t adcConfig[ADC_CHANNEL_COUNT]; extern volatile uint16_t adcValues[ADC_CHANNEL_COUNT]; -uint8_t adcChannelByTag(ioTag_t ioTag); \ No newline at end of file +uint8_t adcChannelByTag(ioTag_t ioTag); diff --git a/src/main/drivers/barometer_spi_bmp280.c b/src/main/drivers/barometer_spi_bmp280.c index 9d97343e1..0c9768497 100644 --- a/src/main/drivers/barometer_spi_bmp280.c +++ b/src/main/drivers/barometer_spi_bmp280.c @@ -15,6 +15,7 @@ * along with Betaflight. If not, see . */ +#include #include #include @@ -24,6 +25,7 @@ #include "barometer.h" #include "barometer_bmp280.h" +#include "io.h" #ifdef USE_BARO_SPI_BMP280 #define DISABLE_BMP280 IOHi(bmp280CsPin) diff --git a/src/main/drivers/bus_i2c.h b/src/main/drivers/bus_i2c.h index 86f7a6618..26cce3792 100644 --- a/src/main/drivers/bus_i2c.h +++ b/src/main/drivers/bus_i2c.h @@ -21,8 +21,8 @@ #define I2C_LONG_TIMEOUT ((uint32_t)(10 * I2C_SHORT_TIMEOUT)) #define I2C_DEFAULT_TIMEOUT I2C_SHORT_TIMEOUT -#include "drivers/io.h" -#include "drivers/rcc.h" +#include "io_types.h" +#include "rcc_types.h" #ifndef I2C_DEVICE #define I2C_DEVICE I2CINVALID diff --git a/src/main/drivers/bus_i2c_soft.c b/src/main/drivers/bus_i2c_soft.c index 104c77c37..42ea8cadc 100644 --- a/src/main/drivers/bus_i2c_soft.c +++ b/src/main/drivers/bus_i2c_soft.c @@ -22,7 +22,7 @@ #include "build_config.h" #include "bus_i2c.h" -#include "drivers/io.h" +#include "io.h" // Software I2C driver, using same pins as hardware I2C, with hw i2c module disabled. // Can be configured for I2C2 pinout (SCL: PB10, SDA: PB11) or I2C1 pinout (SCL: PB6, SDA: PB7) diff --git a/src/main/drivers/bus_i2c_stm32f30x.c b/src/main/drivers/bus_i2c_stm32f30x.c index 88b267f11..f8c5b2369 100644 --- a/src/main/drivers/bus_i2c_stm32f30x.c +++ b/src/main/drivers/bus_i2c_stm32f30x.c @@ -20,9 +20,10 @@ #include -#include "gpio.h" #include "system.h" -#include "drivers/io_impl.h" +#include "io.h" +#include "io_impl.h" +#include "rcc.h" #include "bus_i2c.h" diff --git a/src/main/drivers/bus_spi.h b/src/main/drivers/bus_spi.h index 5a6ea7dd3..58c76c9d7 100644 --- a/src/main/drivers/bus_spi.h +++ b/src/main/drivers/bus_spi.h @@ -17,9 +17,8 @@ #pragma once -#include -#include "io.h" -#include "rcc.h" +#include "io_types.h" +#include "rcc_types.h" #if defined(STM32F4) || defined(STM32F3) #define SPI_IO_AF_CFG IO_CONFIG(GPIO_Mode_AF, GPIO_Speed_50MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL) diff --git a/src/main/drivers/compass_hmc5883l.h b/src/main/drivers/compass_hmc5883l.h index 035a2c936..e2f71fd28 100644 --- a/src/main/drivers/compass_hmc5883l.h +++ b/src/main/drivers/compass_hmc5883l.h @@ -17,7 +17,7 @@ #pragma once -#include "io.h" +#include "io_types.h" typedef struct hmc5883Config_s { ioTag_t intTag; diff --git a/src/main/drivers/dma.c b/src/main/drivers/dma.c index 0ad411312..7e4942fbe 100644 --- a/src/main/drivers/dma.c +++ b/src/main/drivers/dma.c @@ -21,8 +21,8 @@ #include -#include "drivers/nvic.h" -#include "drivers/dma.h" +#include "nvic.h" +#include "dma.h" /* * DMA descriptors. diff --git a/src/main/drivers/dma_stm32f4xx.c b/src/main/drivers/dma_stm32f4xx.c index ec6e7908d..8372ad0bc 100644 --- a/src/main/drivers/dma_stm32f4xx.c +++ b/src/main/drivers/dma_stm32f4xx.c @@ -21,8 +21,8 @@ #include -#include "drivers/nvic.h" -#include "drivers/dma.h" +#include "nvic.h" +#include "dma.h" /* * DMA descriptors. diff --git a/src/main/drivers/flash_m25p16.c b/src/main/drivers/flash_m25p16.c index a0afb6480..44d7b9546 100644 --- a/src/main/drivers/flash_m25p16.c +++ b/src/main/drivers/flash_m25p16.c @@ -22,9 +22,10 @@ #ifdef USE_FLASH_M25P16 -#include "drivers/flash_m25p16.h" -#include "drivers/bus_spi.h" -#include "drivers/system.h" +#include "flash_m25p16.h" +#include "io.h" +#include "bus_spi.h" +#include "system.h" #define M25P16_INSTRUCTION_RDID 0x9F #define M25P16_INSTRUCTION_READ_BYTES 0x03 diff --git a/src/main/drivers/flash_m25p16.h b/src/main/drivers/flash_m25p16.h index 223efa180..6cad8a8ea 100644 --- a/src/main/drivers/flash_m25p16.h +++ b/src/main/drivers/flash_m25p16.h @@ -19,7 +19,7 @@ #include #include "flash.h" -#include "io.h" +#include "io_types.h" #define M25P16_PAGESIZE 256 diff --git a/src/main/drivers/gyro_sync.c b/src/main/drivers/gyro_sync.c index cd95e186e..dbdc2244c 100644 --- a/src/main/drivers/gyro_sync.c +++ b/src/main/drivers/gyro_sync.c @@ -10,9 +10,9 @@ #include "platform.h" -#include "drivers/sensor.h" -#include "drivers/accgyro.h" -#include "drivers/gyro_sync.h" +#include "sensor.h" +#include "accgyro.h" +#include "gyro_sync.h" static uint8_t mpuDividerDrops; diff --git a/src/main/drivers/io.h b/src/main/drivers/io.h index d65564628..5afa4abb7 100644 --- a/src/main/drivers/io.h +++ b/src/main/drivers/io.h @@ -6,16 +6,7 @@ #include #include "resource.h" -// IO pin identification -// make sure that ioTag_t can't be assigned into IO_t without warning -typedef uint8_t ioTag_t; // packet tag to specify IO pin -typedef void* IO_t; // type specifying IO pin. Currently ioRec_t pointer, but this may change - -// NONE initializer for ioTag_t variables -#define IOTAG_NONE ((ioTag_t)0) - -// NONE initializer for IO_t variable -#define IO_NONE ((IO_t)0) +#include "io_types.h" // preprocessor is used to convert pinid to requested C data value // compile-time error is generated if requested pin is not available (not set in TARGET_IO_PORTx) @@ -24,19 +15,6 @@ typedef void* IO_t; // type specifying IO pin. Currently ioRec_t poin // expand pinid to to ioTag_t #define IO_TAG(pinid) DEFIO_TAG(pinid) -// both ioTag_t and IO_t are guarantied to be zero if pinid is NONE (no pin) -// this simplifies initialization (globals are zeroed on start) and allows -// omitting unused fields in structure initializers. -// it is also possible to use IO_t and ioTag_t as boolean value -// TODO - this may conflict with requirement to generate warning/error on IO_t - ioTag_t assignment -// IO_t being pointer is only possibility I know of .. - -// pin config handling -// pin config is packed into ioConfig_t to decrease memory requirements -// IOCFG_x macros are defined for common combinations for all CPUs; this -// helps masking CPU differences - -typedef uint8_t ioConfig_t; // packed IO configuration #if defined(STM32F1) // mode is using only bits 6-2 diff --git a/src/main/drivers/io_types.h b/src/main/drivers/io_types.h new file mode 100644 index 000000000..ba80cd3bc --- /dev/null +++ b/src/main/drivers/io_types.h @@ -0,0 +1,28 @@ +#pragma once + +#include + +// IO pin identification +// make sure that ioTag_t can't be assigned into IO_t without warning +typedef uint8_t ioTag_t; // packet tag to specify IO pin +typedef void* IO_t; // type specifying IO pin. Currently ioRec_t pointer, but this may change + +// NONE initializer for ioTag_t variables +#define IOTAG_NONE ((ioTag_t)0) + +// NONE initializer for IO_t variable +#define IO_NONE ((IO_t)0) + +// both ioTag_t and IO_t are guarantied to be zero if pinid is NONE (no pin) +// this simplifies initialization (globals are zeroed on start) and allows +// omitting unused fields in structure initializers. +// it is also possible to use IO_t and ioTag_t as boolean value +// TODO - this may conflict with requirement to generate warning/error on IO_t - ioTag_t assignment +// IO_t being pointer is only possibility I know of .. + +// pin config handling +// pin config is packed into ioConfig_t to decrease memory requirements +// IOCFG_x macros are defined for common combinations for all CPUs; this +// helps masking CPU differences + +typedef uint8_t ioConfig_t; // packed IO configuration diff --git a/src/main/drivers/light_ws2811strip.c b/src/main/drivers/light_ws2811strip.c index 6c8f2bb18..d9c29af37 100644 --- a/src/main/drivers/light_ws2811strip.c +++ b/src/main/drivers/light_ws2811strip.c @@ -36,8 +36,8 @@ #include "common/color.h" #include "common/colorconversion.h" -#include "drivers/dma.h" -#include "drivers/light_ws2811strip.h" +#include "dma.h" +#include "light_ws2811strip.h" uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE]; volatile uint8_t ws2811LedDataTransferInProgress = 0; diff --git a/src/main/drivers/light_ws2811strip_stm32f10x.c b/src/main/drivers/light_ws2811strip_stm32f10x.c index 4b588a0c9..911b7cdc6 100644 --- a/src/main/drivers/light_ws2811strip_stm32f10x.c +++ b/src/main/drivers/light_ws2811strip_stm32f10x.c @@ -23,10 +23,11 @@ #ifdef LED_STRIP #include "common/color.h" -#include "drivers/light_ws2811strip.h" +#include "light_ws2811strip.h" #include "nvic.h" #include "io.h" #include "dma.h" +#include "rcc.h" #include "timer.h" static IO_t ws2811IO = IO_NONE; diff --git a/src/main/drivers/light_ws2811strip_stm32f30x.c b/src/main/drivers/light_ws2811strip_stm32f30x.c index 8379188f9..1fadfb1f0 100644 --- a/src/main/drivers/light_ws2811strip_stm32f30x.c +++ b/src/main/drivers/light_ws2811strip_stm32f30x.c @@ -26,7 +26,7 @@ #include "nvic.h" #include "common/color.h" -#include "drivers/light_ws2811strip.h" +#include "light_ws2811strip.h" #include "dma.h" #include "rcc.h" #include "timer.h" diff --git a/src/main/drivers/max7456.c b/src/main/drivers/max7456.c index 82f3f29af..7ddc2a058 100644 --- a/src/main/drivers/max7456.c +++ b/src/main/drivers/max7456.c @@ -19,16 +19,19 @@ #include #include "platform.h" -#include "version.h" #ifdef USE_MAX7456 +#include "version.h" + #include "common/printf.h" -#include "drivers/bus_spi.h" -#include "drivers/light_led.h" -#include "drivers/system.h" -#include "drivers/nvic.h" -#include "drivers/dma.h" + +#include "bus_spi.h" +#include "light_led.h" +#include "io.h" +#include "system.h" +#include "nvic.h" +#include "dma.h" #include "max7456.h" #include "max7456_symbols.h" diff --git a/src/main/drivers/pwm_mapping.h b/src/main/drivers/pwm_mapping.h index 29a5d02f1..c01706183 100644 --- a/src/main/drivers/pwm_mapping.h +++ b/src/main/drivers/pwm_mapping.h @@ -17,7 +17,7 @@ #pragma once -#include "timer.h" +#include "io_types.h" #define MAX_PWM_MOTORS 12 #define MAX_PWM_SERVOS 8 @@ -88,10 +88,11 @@ typedef enum { PWM_PF_OUTPUT_PROTOCOL_ONESHOT = (1 << 4) } pwmPortFlags_e; +struct timerHardware_s; typedef struct pwmPortConfiguration_s { uint8_t index; pwmPortFlags_e flags; - const timerHardware_t *timerHardware; + const struct timerHardware_s *timerHardware; } pwmPortConfiguration_t; typedef struct pwmOutputConfiguration_s { diff --git a/src/main/drivers/pwm_rx.c b/src/main/drivers/pwm_rx.c index 3c72d104d..60af85e97 100644 --- a/src/main/drivers/pwm_rx.c +++ b/src/main/drivers/pwm_rx.c @@ -30,7 +30,7 @@ #include "system.h" #include "nvic.h" -#include "gpio.h" +#include "io.h" #include "timer.h" #include "pwm_output.h" diff --git a/src/main/drivers/rcc.h b/src/main/drivers/rcc.h index fb04ec7e2..69dce965f 100644 --- a/src/main/drivers/rcc.h +++ b/src/main/drivers/rcc.h @@ -2,6 +2,7 @@ #include "platform.h" #include "common/utils.h" +#include "rcc_types.h" enum rcc_reg { RCC_EMPTY = 0, // make sure that default value (0) does not enable anything @@ -17,9 +18,6 @@ enum rcc_reg { #define RCC_APB1(periph) RCC_ENCODE(RCC_APB1, RCC_APB1ENR_ ## periph ## EN) #define RCC_AHB1(periph) RCC_ENCODE(RCC_AHB1, RCC_AHB1ENR_ ## periph ## EN) -typedef uint8_t rccPeriphTag_t; - void RCC_ClockCmd(rccPeriphTag_t periphTag, FunctionalState NewState); void RCC_ResetCmd(rccPeriphTag_t periphTag, FunctionalState NewState); - diff --git a/src/main/drivers/rcc_types.h b/src/main/drivers/rcc_types.h new file mode 100644 index 000000000..1b7d7b9f2 --- /dev/null +++ b/src/main/drivers/rcc_types.h @@ -0,0 +1,4 @@ +#pragma once + +typedef uint8_t rccPeriphTag_t; + diff --git a/src/main/drivers/sdcard.c b/src/main/drivers/sdcard.c index 878d5eacf..a86fc7457 100644 --- a/src/main/drivers/sdcard.c +++ b/src/main/drivers/sdcard.c @@ -25,8 +25,8 @@ #include "nvic.h" #include "io.h" -#include "drivers/bus_spi.h" -#include "drivers/system.h" +#include "bus_spi.h" +#include "system.h" #include "sdcard.h" #include "sdcard_standard.h" diff --git a/src/main/drivers/serial_usb_vcp.c b/src/main/drivers/serial_usb_vcp.c index 2c2cebbac..50c6055dd 100644 --- a/src/main/drivers/serial_usb_vcp.c +++ b/src/main/drivers/serial_usb_vcp.c @@ -22,7 +22,7 @@ #include "build_config.h" #include "common/utils.h" -#include "drivers/io.h" +#include "io.h" #include "usb_core.h" #ifdef STM32F4 @@ -32,7 +32,7 @@ #include "hw_config.h" #endif -#include "drivers/system.h" +#include "system.h" #include "serial.h" #include "serial_usb_vcp.h" diff --git a/src/main/drivers/sonar_hcsr04.h b/src/main/drivers/sonar_hcsr04.h index d734f62f4..cb3f38c98 100644 --- a/src/main/drivers/sonar_hcsr04.h +++ b/src/main/drivers/sonar_hcsr04.h @@ -17,8 +17,7 @@ #pragma once -#include "platform.h" -#include "io.h" +#include "io_types.h" typedef struct sonarHardware_s { ioTag_t triggerTag; diff --git a/src/main/drivers/sound_beeper.h b/src/main/drivers/sound_beeper.h index ab7a7c3df..9caad4f55 100644 --- a/src/main/drivers/sound_beeper.h +++ b/src/main/drivers/sound_beeper.h @@ -17,7 +17,7 @@ #pragma once -#include "drivers/io.h" +#include "io_types.h" #ifdef BEEPER #define BEEP_TOGGLE systemBeepToggle() diff --git a/src/main/drivers/timer.c b/src/main/drivers/timer.c index 15e36cce3..5051588c9 100755 --- a/src/main/drivers/timer.c +++ b/src/main/drivers/timer.c @@ -25,7 +25,7 @@ #include "nvic.h" -#include "gpio.h" +#include "io.h" #include "rcc.h" #include "system.h" diff --git a/src/main/drivers/timer.h b/src/main/drivers/timer.h index 7050bbabd..00410a9c6 100644 --- a/src/main/drivers/timer.h +++ b/src/main/drivers/timer.h @@ -17,12 +17,11 @@ #pragma once -#include "io.h" -#include "rcc.h" +#include +#include -#if !defined(USABLE_TIMER_CHANNEL_COUNT) -#define USABLE_TIMER_CHANNEL_COUNT 14 -#endif +#include "io_types.h" +#include "rcc_types.h" typedef uint16_t captureCompare_t; // 16 bit on both 103 and 303, just register access must be 32bit sometimes (use timCCR_t) diff --git a/src/main/drivers/timer_stm32f10x.c b/src/main/drivers/timer_stm32f10x.c index 1a5085e63..49106818f 100644 --- a/src/main/drivers/timer_stm32f10x.c +++ b/src/main/drivers/timer_stm32f10x.c @@ -5,6 +5,11 @@ http://www.st.com/software_license_agreement_liberty_v2 */ +#include +#include + +#include "platform.h" + #include "stm32f10x.h" #include "rcc.h" #include "timer.h" diff --git a/src/main/drivers/timer_stm32f30x.c b/src/main/drivers/timer_stm32f30x.c index 04069b20c..99111bad7 100644 --- a/src/main/drivers/timer_stm32f30x.c +++ b/src/main/drivers/timer_stm32f30x.c @@ -5,6 +5,11 @@ http://www.st.com/software_license_agreement_liberty_v2 */ +#include +#include + +#include "platform.h" + #include "stm32f30x.h" #include "rcc.h" #include "timer.h" diff --git a/src/main/drivers/timer_stm32f4xx.c b/src/main/drivers/timer_stm32f4xx.c index af09f85e1..ccce10350 100644 --- a/src/main/drivers/timer_stm32f4xx.c +++ b/src/main/drivers/timer_stm32f4xx.c @@ -5,9 +5,14 @@ http://www.st.com/software_license_agreement_liberty_v2 */ +#include +#include + +#include "platform.h" + #include "stm32f4xx.h" -#include "timer.h" #include "rcc.h" +#include "timer.h" /** * @brief Selects the TIM Output Compare Mode. diff --git a/src/main/drivers/transponder_ir.c b/src/main/drivers/transponder_ir.c index 626c60097..dbc6749af 100644 --- a/src/main/drivers/transponder_ir.c +++ b/src/main/drivers/transponder_ir.c @@ -21,9 +21,9 @@ #include -#include "drivers/dma.h" -#include "drivers/nvic.h" -#include "drivers/transponder_ir.h" +#include "dma.h" +#include "nvic.h" +#include "transponder_ir.h" /* * Implementation note: diff --git a/src/main/drivers/transponder_ir_stm32f30x.c b/src/main/drivers/transponder_ir_stm32f30x.c index 3962e1c99..0bff2e112 100644 --- a/src/main/drivers/transponder_ir_stm32f30x.c +++ b/src/main/drivers/transponder_ir_stm32f30x.c @@ -20,9 +20,9 @@ #include -#include "drivers/gpio.h" -#include "drivers/transponder_ir.h" -#include "drivers/nvic.h" +#include "gpio.h" +#include "transponder_ir.h" +#include "nvic.h" #ifndef TRANSPONDER_GPIO #define USE_TRANSPONDER_ON_DMA1_CHANNEL3 diff --git a/src/main/drivers/vtx_rtc6705.c b/src/main/drivers/vtx_rtc6705.c index 93ffa83ec..08ec758e8 100644 --- a/src/main/drivers/vtx_rtc6705.c +++ b/src/main/drivers/vtx_rtc6705.c @@ -31,9 +31,9 @@ #include "common/maths.h" -#include "drivers/vtx_rtc6705.h" -#include "drivers/bus_spi.h" -#include "drivers/system.h" +#include "vtx_rtc6705.h" +#include "bus_spi.h" +#include "system.h" #define RTC6705_SET_HEAD 0x3210 //fosc=8mhz r=400 #define RTC6705_SET_A1 0x8F3031 //5865 diff --git a/src/main/drivers/vtx_soft_spi_rtc6705.c b/src/main/drivers/vtx_soft_spi_rtc6705.c index 4ceba50df..e6340680f 100644 --- a/src/main/drivers/vtx_soft_spi_rtc6705.c +++ b/src/main/drivers/vtx_soft_spi_rtc6705.c @@ -22,9 +22,10 @@ #ifdef USE_RTC6705 -#include "drivers/bus_spi.h" -#include "drivers/system.h" -#include "drivers/light_led.h" +#include "bus_spi.h" +#include "io.h" +#include "system.h" +#include "light_led.h" #include "vtx_soft_spi_rtc6705.h" diff --git a/src/main/io/serial_4way_avrootloader.c b/src/main/io/serial_4way_avrootloader.c index f0f552581..223d3e10c 100644 --- a/src/main/io/serial_4way_avrootloader.c +++ b/src/main/io/serial_4way_avrootloader.c @@ -25,8 +25,10 @@ #include "platform.h" #ifdef USE_SERIAL_4WAY_BLHELI_INTERFACE +#include "drivers/io_types.h" #include "drivers/system.h" #include "drivers/serial.h" +#include "drivers/timer.h" #include "drivers/pwm_mapping.h" #include "io/serial.h" #include "io/serial_msp.h" diff --git a/src/main/main.c b/src/main/main.c index 24b983308..436f5b579 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -33,6 +33,7 @@ #include "drivers/system.h" #include "drivers/dma.h" #include "drivers/gpio.h" +#include "drivers/io.h" #include "drivers/light_led.h" #include "drivers/sound_beeper.h" #include "drivers/timer.h" diff --git a/src/main/sensors/initialisation.c b/src/main/sensors/initialisation.c index bb46059ac..c3465b393 100755 --- a/src/main/sensors/initialisation.c +++ b/src/main/sensors/initialisation.c @@ -24,7 +24,7 @@ #include "common/axis.h" -#include "drivers/gpio.h" +#include "drivers/io.h" #include "drivers/system.h" #include "drivers/exti.h" diff --git a/src/main/target/AIORACERF3/target.c b/src/main/target/AIORACERF3/target.c index e780364ec..f950c6784 100644 --- a/src/main/target/AIORACERF3/target.c +++ b/src/main/target/AIORACERF3/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/AIR32/target.c b/src/main/target/AIR32/target.c index 378627daa..b5b988937 100644 --- a/src/main/target/AIR32/target.c +++ b/src/main/target/AIR32/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM9 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/ALIENFLIGHTF1/target.c b/src/main/target/ALIENFLIGHTF1/target.c index 7116b5355..dec8739ba 100644 --- a/src/main/target/ALIENFLIGHTF1/target.c +++ b/src/main/target/ALIENFLIGHTF1/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/ALIENFLIGHTF1/target.h b/src/main/target/ALIENFLIGHTF1/target.h index 6d945008f..04984912c 100644 --- a/src/main/target/ALIENFLIGHTF1/target.h +++ b/src/main/target/ALIENFLIGHTF1/target.h @@ -90,4 +90,5 @@ #define TARGET_IO_PORTB 0xffff #define TARGET_IO_PORTC ( BIT(13) | BIT(14) | BIT(15) ) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) ) diff --git a/src/main/target/ALIENFLIGHTF3/target.c b/src/main/target/ALIENFLIGHTF3/target.c index c1946aa17..8169e9e91 100644 --- a/src/main/target/ALIENFLIGHTF3/target.c +++ b/src/main/target/ALIENFLIGHTF3/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM11 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/ALIENFLIGHTF3/target.h b/src/main/target/ALIENFLIGHTF3/target.h index 28a896ff0..d2e9e92ba 100644 --- a/src/main/target/ALIENFLIGHTF3/target.h +++ b/src/main/target/ALIENFLIGHTF3/target.h @@ -35,8 +35,6 @@ #define BEEPER PA5 -#define USABLE_TIMER_CHANNEL_COUNT 11 - #define EXTI_CALLBACK_HANDLER_COUNT 1 // MPU data ready #define USE_EXTI @@ -131,5 +129,6 @@ #define TARGET_IO_PORTD (BIT(2)) #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4)) +#define USABLE_TIMER_CHANNEL_COUNT 11 #define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(17) ) diff --git a/src/main/target/ALIENFLIGHTF4/target.c b/src/main/target/ALIENFLIGHTF4/target.c index efedb5668..dafcdf86d 100644 --- a/src/main/target/ALIENFLIGHTF4/target.c +++ b/src/main/target/ALIENFLIGHTF4/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/BLUEJAYF4/target.c b/src/main/target/BLUEJAYF4/target.c index b85e50f53..83e0700cd 100644 --- a/src/main/target/BLUEJAYF4/target.c +++ b/src/main/target/BLUEJAYF4/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/CC3D/target.c b/src/main/target/CC3D/target.c index a870de9e2..589c6af30 100644 --- a/src/main/target/CC3D/target.c +++ b/src/main/target/CC3D/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM6 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/CHEBUZZF3/target.c b/src/main/target/CHEBUZZF3/target.c index 631d83e6a..c2aca4671 100644 --- a/src/main/target/CHEBUZZF3/target.c +++ b/src/main/target/CHEBUZZF3/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/CJMCU/target.c b/src/main/target/CJMCU/target.c index 0f8228559..3562e3234 100644 --- a/src/main/target/CJMCU/target.c +++ b/src/main/target/CJMCU/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/CJMCU/target.h b/src/main/target/CJMCU/target.h index 973e0984f..beb4be965 100644 --- a/src/main/target/CJMCU/target.h +++ b/src/main/target/CJMCU/target.h @@ -71,4 +71,5 @@ #define TARGET_IO_PORTB 0xffff #define TARGET_IO_PORTC (BIT(13)|BIT(14)|BIT(15)) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4)) diff --git a/src/main/target/COLIBRI_RACE/target.c b/src/main/target/COLIBRI_RACE/target.c index 91b21c8b3..099f9b62e 100644 --- a/src/main/target/COLIBRI_RACE/target.c +++ b/src/main/target/COLIBRI_RACE/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/DOGE/target.c b/src/main/target/DOGE/target.c index 05b642f08..ca13ef7d0 100644 --- a/src/main/target/DOGE/target.c +++ b/src/main/target/DOGE/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/DOGE/target.h b/src/main/target/DOGE/target.h index 2399ede8d..3f40c4ab4 100644 --- a/src/main/target/DOGE/target.h +++ b/src/main/target/DOGE/target.h @@ -67,11 +67,6 @@ #define M25P16_CS_PIN PC15 #define M25P16_SPI_INSTANCE SPI2 -// timer definitions in drivers/timer.c -// channel mapping in drivers/pwm_mapping.c -// only 6 outputs available on hardware -#define USABLE_TIMER_CHANNEL_COUNT 9 - #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 @@ -147,5 +142,9 @@ #define TARGET_IO_PORTC (BIT(13)|BIT(14)|BIT(15)) #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(3)|BIT(4)) +// timer definitions in drivers/timer.c +// channel mapping in drivers/pwm_mapping.c +// only 6 outputs available on hardware +#define USABLE_TIMER_CHANNEL_COUNT 9 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15)) diff --git a/src/main/target/EUSTM32F103RC/target.c b/src/main/target/EUSTM32F103RC/target.c index b2a0db9a1..0dc2d6604 100644 --- a/src/main/target/EUSTM32F103RC/target.c +++ b/src/main/target/EUSTM32F103RC/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/EUSTM32F103RC/target.h b/src/main/target/EUSTM32F103RC/target.h index 12ec85f37..d883641d4 100644 --- a/src/main/target/EUSTM32F103RC/target.h +++ b/src/main/target/EUSTM32F103RC/target.h @@ -113,5 +113,6 @@ #define TARGET_IO_PORTC 0xffff #define TARGET_IO_PORTD (BIT(0)|BIT(1)|BIT(2)) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4)) diff --git a/src/main/target/F4BY/target.c b/src/main/target/F4BY/target.c index a8d80e823..e9befde0a 100644 --- a/src/main/target/F4BY/target.c +++ b/src/main/target/F4BY/target.c @@ -3,17 +3,18 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM11 | (MAP_TO_MOTOR_OUTPUT << 8), + PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed + PWM11 | (MAP_TO_MOTOR_OUTPUT << 8), PWM12 | (MAP_TO_MOTOR_OUTPUT << 8), PWM13 | (MAP_TO_MOTOR_OUTPUT << 8), PWM14 | (MAP_TO_MOTOR_OUTPUT << 8), - PWM15 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM16 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed + PWM15 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed + PWM16 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed PWM8 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed PWM7 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed PWM6 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed @@ -47,13 +48,13 @@ const uint16_t multiPWM[] = { const uint16_t airPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed - PWM11 | (MAP_TO_SERVO_OUTPUT << 8), + PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed + PWM11 | (MAP_TO_SERVO_OUTPUT << 8), PWM12 | (MAP_TO_SERVO_OUTPUT << 8), PWM13 | (MAP_TO_SERVO_OUTPUT << 8), PWM14 | (MAP_TO_SERVO_OUTPUT << 8), - PWM15 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed - PWM16 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed + PWM15 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed + PWM16 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed PWM7 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed PWM6 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed PWM5 | (MAP_TO_SERVO_OUTPUT << 8), // Swap to servo if needed @@ -84,23 +85,23 @@ const uint16_t airPWM[] = { }; const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { - { TIM3, IO_TAG(PC9), TIM_Channel_4, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S1_IN - { TIM3, IO_TAG(PC8), TIM_Channel_3, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S2_IN - { TIM3, IO_TAG(PC6), TIM_Channel_1, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S3_IN - { TIM3, IO_TAG(PC7), TIM_Channel_2, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S4_IN - { TIM4, IO_TAG(PD15), TIM_Channel_4, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S5_IN - { TIM4, IO_TAG(PD14), TIM_Channel_3, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S6_IN - { TIM4, IO_TAG(PD13), TIM_Channel_2, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S7_IN - { TIM4, IO_TAG(PD12), TIM_Channel_1, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S8_IN + { TIM3, IO_TAG(PC9), TIM_Channel_4, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S1_IN + { TIM3, IO_TAG(PC8), TIM_Channel_3, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S2_IN + { TIM3, IO_TAG(PC6), TIM_Channel_1, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S3_IN + { TIM3, IO_TAG(PC7), TIM_Channel_2, TIM3_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM3}, // S4_IN + { TIM4, IO_TAG(PD15), TIM_Channel_4, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S5_IN + { TIM4, IO_TAG(PD14), TIM_Channel_3, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S6_IN + { TIM4, IO_TAG(PD13), TIM_Channel_2, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S7_IN + { TIM4, IO_TAG(PD12), TIM_Channel_1, TIM4_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM4}, // S8_IN - { TIM2, IO_TAG(PA0), TIM_Channel_1, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2}, // S1_OUT - { TIM2, IO_TAG(PA1), TIM_Channel_2, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2}, // S2_OUT - { TIM5, IO_TAG(PA2), TIM_Channel_3, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5}, // S3_OUT - { TIM5, IO_TAG(PA3), TIM_Channel_4, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5}, // S4_OUT - { TIM1, IO_TAG(PE9), TIM_Channel_1, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S5_OUT - { TIM1, IO_TAG(PE11), TIM_Channel_2, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S6_OUT - { TIM1, IO_TAG(PE13), TIM_Channel_3, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S7_OUT - { TIM1, IO_TAG(PE14), TIM_Channel_4, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S8_OUT + { TIM2, IO_TAG(PA0), TIM_Channel_1, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2}, // S1_OUT + { TIM2, IO_TAG(PA1), TIM_Channel_2, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2}, // S2_OUT + { TIM5, IO_TAG(PA2), TIM_Channel_3, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5}, // S3_OUT + { TIM5, IO_TAG(PA3), TIM_Channel_4, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5}, // S4_OUT + { TIM1, IO_TAG(PE9), TIM_Channel_1, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S5_OUT + { TIM1, IO_TAG(PE11), TIM_Channel_2, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S6_OUT + { TIM1, IO_TAG(PE13), TIM_Channel_3, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S7_OUT + { TIM1, IO_TAG(PE14), TIM_Channel_4, TIM1_CC_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM1}, // S8_OUT { TIM9, IO_TAG(PE6), TIM_Channel_2, TIM1_BRK_TIM9_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM9 }, // sonar echo if needed }; diff --git a/src/main/target/F4BY/target.h b/src/main/target/F4BY/target.h index 7c9e89b48..d8f815403 100644 --- a/src/main/target/F4BY/target.h +++ b/src/main/target/F4BY/target.h @@ -74,8 +74,6 @@ #define SDCARD_DMA_CHANNEL DMA_Channel_0 -#define USABLE_TIMER_CHANNEL_COUNT 17 - #define USE_VCP #define VBUS_SENSING_PIN PA9 @@ -156,5 +154,6 @@ #define TARGET_IO_PORTD 0xffff #define TARGET_IO_PORTE 0xffff +#define USABLE_TIMER_CHANNEL_COUNT 17 #define USED_TIMERS ( TIM_N(1) |TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(8) | TIM_N(9)) diff --git a/src/main/target/FURYF3/target.c b/src/main/target/FURYF3/target.c index bf4ff7b20..db28609d9 100644 --- a/src/main/target/FURYF3/target.c +++ b/src/main/target/FURYF3/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/FURYF4/target.c b/src/main/target/FURYF4/target.c index ac600ea43..a53aa4d44 100644 --- a/src/main/target/FURYF4/target.c +++ b/src/main/target/FURYF4/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/FURYF4/target.h b/src/main/target/FURYF4/target.h index 8f6937859..05ff28628 100644 --- a/src/main/target/FURYF4/target.h +++ b/src/main/target/FURYF4/target.h @@ -101,8 +101,6 @@ #define M25P16_CS_PIN PB3 #define M25P16_SPI_INSTANCE SPI3 -#define USABLE_TIMER_CHANNEL_COUNT 5 - #define USE_VCP #define VBUS_SENSING_PIN PC5 #define VBUS_SENSING_ENABLED @@ -167,5 +165,6 @@ #define TARGET_IO_PORTC 0xffff #define TARGET_IO_PORTD (BIT(2)) +#define USABLE_TIMER_CHANNEL_COUNT 5 #define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(8) | TIM_N(9)) diff --git a/src/main/target/IRCFUSIONF3/target.c b/src/main/target/IRCFUSIONF3/target.c index dd87a8641..2e4e12fb0 100644 --- a/src/main/target/IRCFUSIONF3/target.c +++ b/src/main/target/IRCFUSIONF3/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/IRCFUSIONF3/target.h b/src/main/target/IRCFUSIONF3/target.h index 8dbd6e55b..9ceabb35d 100644 --- a/src/main/target/IRCFUSIONF3/target.h +++ b/src/main/target/IRCFUSIONF3/target.h @@ -23,8 +23,6 @@ #define LED0 PB3 -#define USABLE_TIMER_CHANNEL_COUNT 17 - #define EXTI_CALLBACK_HANDLER_COUNT 1 // MPU data ready, no MAG #define USE_MPU_DATA_READY_SIGNAL @@ -105,5 +103,6 @@ #define TARGET_IO_PORTC (BIT(13)|BIT(14)|BIT(15)) #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(4)) +#define USABLE_TIMER_CHANNEL_COUNT 17 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15) | TIM_N(16) |TIM_N(17)) diff --git a/src/main/target/KISSFC/target.c b/src/main/target/KISSFC/target.c index cbb9d7481..a443fe862 100644 --- a/src/main/target/KISSFC/target.c +++ b/src/main/target/KISSFC/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM7 | (MAP_TO_PPM_INPUT << 8), diff --git a/src/main/target/KISSFC/target.h b/src/main/target/KISSFC/target.h index 05346145d..e532b9d78 100644 --- a/src/main/target/KISSFC/target.h +++ b/src/main/target/KISSFC/target.h @@ -28,8 +28,6 @@ #define BEEPER PB13 #define BEEPER_INVERTED -#define USABLE_TIMER_CHANNEL_COUNT 12 - #define USE_EXTI #define MPU_INT_EXTI PB2 #define USE_MPU_DATA_READY_SIGNAL @@ -84,4 +82,5 @@ #define TARGET_IO_PORTD 0xffff #define TARGET_IO_PORTF (BIT(4)) +#define USABLE_TIMER_CHANNEL_COUNT 12 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(8) | TIM_N(15) | TIM_N(16) | TIM_N(17)) diff --git a/src/main/target/LUX_RACE/target.c b/src/main/target/LUX_RACE/target.c index 91b21c8b3..099f9b62e 100644 --- a/src/main/target/LUX_RACE/target.c +++ b/src/main/target/LUX_RACE/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/MICROSCISKY/target.c b/src/main/target/MICROSCISKY/target.c index 7116b5355..dec8739ba 100644 --- a/src/main/target/MICROSCISKY/target.c +++ b/src/main/target/MICROSCISKY/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/MICROSCISKY/target.h b/src/main/target/MICROSCISKY/target.h index 80d4f0485..9138f74e8 100644 --- a/src/main/target/MICROSCISKY/target.h +++ b/src/main/target/MICROSCISKY/target.h @@ -97,4 +97,5 @@ #define TARGET_IO_PORTB 0xffff #define TARGET_IO_PORTC ( BIT(13) | BIT(14) | BIT(15) ) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) ) diff --git a/src/main/target/MOTOLAB/target.c b/src/main/target/MOTOLAB/target.c index a89063cc9..cc898ba83 100644 --- a/src/main/target/MOTOLAB/target.c +++ b/src/main/target/MOTOLAB/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM9 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/NAZE/target.c b/src/main/target/NAZE/target.c index 7116b5355..dec8739ba 100644 --- a/src/main/target/NAZE/target.c +++ b/src/main/target/NAZE/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/NAZE/target.h b/src/main/target/NAZE/target.h index 0e8ba62be..7e3705b47 100644 --- a/src/main/target/NAZE/target.h +++ b/src/main/target/NAZE/target.h @@ -163,4 +163,5 @@ #define TARGET_IO_PORTB 0xffff #define TARGET_IO_PORTC ( BIT(13) | BIT(14) | BIT(15) ) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) ) diff --git a/src/main/target/OLIMEXINO/target.c b/src/main/target/OLIMEXINO/target.c index ea20267b3..5d0a271c5 100644 --- a/src/main/target/OLIMEXINO/target.c +++ b/src/main/target/OLIMEXINO/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/OLIMEXINO/target.h b/src/main/target/OLIMEXINO/target.h index bb270cb4f..ae8ac3b38 100644 --- a/src/main/target/OLIMEXINO/target.h +++ b/src/main/target/OLIMEXINO/target.h @@ -91,4 +91,5 @@ #define TARGET_IO_PORTC 0xffff #define TARGET_IO_PORTD (BIT(2)) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4)) diff --git a/src/main/target/OMNIBUS/target.c b/src/main/target/OMNIBUS/target.c index 977d623f8..a3cd3e54d 100644 --- a/src/main/target/OMNIBUS/target.c +++ b/src/main/target/OMNIBUS/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/OMNIBUSF4/target.c b/src/main/target/OMNIBUSF4/target.c index 7dd021055..2ed3eab8f 100644 --- a/src/main/target/OMNIBUSF4/target.c +++ b/src/main/target/OMNIBUSF4/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM6 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/PIKOBLX/target.c b/src/main/target/PIKOBLX/target.c index a89063cc9..cc898ba83 100644 --- a/src/main/target/PIKOBLX/target.c +++ b/src/main/target/PIKOBLX/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM9 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/PIKOBLX/target.h b/src/main/target/PIKOBLX/target.h index 111f6fc47..7a104b746 100644 --- a/src/main/target/PIKOBLX/target.h +++ b/src/main/target/PIKOBLX/target.h @@ -28,8 +28,6 @@ #define BEEPER PA0 #define BEEPER_INVERTED -#define USABLE_TIMER_CHANNEL_COUNT 9 - // MPU6000 interrupts #define USE_EXTI #define MPU_INT_EXTI PA15 @@ -136,5 +134,6 @@ // !!TODO - check the following line is correct #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(3)|BIT(4)) +#define USABLE_TIMER_CHANNEL_COUNT 9 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(17)) diff --git a/src/main/target/PORT103R/target.c b/src/main/target/PORT103R/target.c index 8f21b7cbb..093fa6ee2 100644 --- a/src/main/target/PORT103R/target.c +++ b/src/main/target/PORT103R/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/PORT103R/target.h b/src/main/target/PORT103R/target.h index 66e83fa3d..9f0239d57 100644 --- a/src/main/target/PORT103R/target.h +++ b/src/main/target/PORT103R/target.h @@ -123,5 +123,6 @@ #define TARGET_IO_PORTC 0xffff #define TARGET_IO_PORTD (BIT(0)|BIT(1)|BIT(2)) +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4)) diff --git a/src/main/target/REVO/target.c b/src/main/target/REVO/target.c index 67f732728..a253a0b31 100644 --- a/src/main/target/REVO/target.c +++ b/src/main/target/REVO/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM6 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/REVONANO/target.c b/src/main/target/REVONANO/target.c index 9a579f2bc..bf5023fc2 100644 --- a/src/main/target/REVONANO/target.c +++ b/src/main/target/REVONANO/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/RMDO/target.c b/src/main/target/RMDO/target.c index ee96272c1..d344cda35 100644 --- a/src/main/target/RMDO/target.c +++ b/src/main/target/RMDO/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/SINGULARITY/target.c b/src/main/target/SINGULARITY/target.c index 813157951..e48d0c33b 100644 --- a/src/main/target/SINGULARITY/target.c +++ b/src/main/target/SINGULARITY/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), diff --git a/src/main/target/SINGULARITY/target.h b/src/main/target/SINGULARITY/target.h index 09a567817..ed23489a3 100644 --- a/src/main/target/SINGULARITY/target.h +++ b/src/main/target/SINGULARITY/target.h @@ -25,8 +25,6 @@ #define BEEPER PC15 -#define USABLE_TIMER_CHANNEL_COUNT 10 - #define USE_EXTI #define MPU_INT_EXTI PC13 #define USE_MPU_DATA_READY_SIGNAL @@ -115,5 +113,6 @@ // !!TODO - check the following line is correct #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(3)|BIT(4)) +#define USABLE_TIMER_CHANNEL_COUNT 10 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(15) | TIM_N(16) |TIM_N(17)) diff --git a/src/main/target/SIRINFPV/target.c b/src/main/target/SIRINFPV/target.c index b52fbd00e..7d602c74b 100644 --- a/src/main/target/SIRINFPV/target.c +++ b/src/main/target/SIRINFPV/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM7 | (MAP_TO_PPM_INPUT << 8), diff --git a/src/main/target/SPARKY/target.c b/src/main/target/SPARKY/target.c index 389617278..20b1f185d 100644 --- a/src/main/target/SPARKY/target.c +++ b/src/main/target/SPARKY/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM11 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/SPRACINGF3/target.c b/src/main/target/SPRACINGF3/target.c index ec9176a27..99f79ec9b 100644 --- a/src/main/target/SPRACINGF3/target.c +++ b/src/main/target/SPRACINGF3/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/SPRACINGF3EVO/target.c b/src/main/target/SPRACINGF3EVO/target.c index 843ad3d9a..87eb5db35 100644 --- a/src/main/target/SPRACINGF3EVO/target.c +++ b/src/main/target/SPRACINGF3EVO/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/SPRACINGF3MINI/target.c b/src/main/target/SPRACINGF3MINI/target.c index d1e3a0d8b..bf8776aa9 100644 --- a/src/main/target/SPRACINGF3MINI/target.c +++ b/src/main/target/SPRACINGF3MINI/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/STM32F3DISCOVERY/target.c b/src/main/target/STM32F3DISCOVERY/target.c index 1712bebae..d2c17db5a 100644 --- a/src/main/target/STM32F3DISCOVERY/target.c +++ b/src/main/target/STM32F3DISCOVERY/target.c @@ -20,6 +20,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/STM32F3DISCOVERY/target.h b/src/main/target/STM32F3DISCOVERY/target.h index 592833bc4..a75e95217 100644 --- a/src/main/target/STM32F3DISCOVERY/target.h +++ b/src/main/target/STM32F3DISCOVERY/target.h @@ -165,5 +165,6 @@ #define TARGET_IO_PORTE 0xffff #define TARGET_IO_PORTF 0x00ff +#define USABLE_TIMER_CHANNEL_COUNT 14 #define USED_TIMERS (TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(8) | TIM_N(16) | TIM_N(17)) diff --git a/src/main/target/X_RACERSPI/target.c b/src/main/target/X_RACERSPI/target.c index 85db79093..a63258100 100644 --- a/src/main/target/X_RACERSPI/target.c +++ b/src/main/target/X_RACERSPI/target.c @@ -5,6 +5,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/X_RACERSPI/target.h b/src/main/target/X_RACERSPI/target.h index 7838b1f46..9cc822ebe 100644 --- a/src/main/target/X_RACERSPI/target.h +++ b/src/main/target/X_RACERSPI/target.h @@ -26,8 +26,6 @@ #define BEEPER PC15 #define BEEPER_INVERTED -#define USABLE_TIMER_CHANNEL_COUNT 17 - #define USE_MAG_DATA_READY_SIGNAL #define ENSURE_MAG_DATA_READY_IS_HIGH @@ -128,5 +126,6 @@ #define TARGET_IO_PORTC (BIT(13)|BIT(14)|BIT(15)) #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(3)|BIT(4)) +#define USABLE_TIMER_CHANNEL_COUNT 17 #define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15) | TIM_N(16) | TIM_N(17) ) diff --git a/src/main/target/ZCOREF3/target.c b/src/main/target/ZCOREF3/target.c index b72400e6f..48a6ce60d 100644 --- a/src/main/target/ZCOREF3/target.c +++ b/src/main/target/ZCOREF3/target.c @@ -5,6 +5,7 @@ #include #include "drivers/io.h" #include "drivers/pwm_mapping.h" +#include "drivers/timer.h" const uint16_t multiPPM[] = { PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input diff --git a/src/main/target/ZCOREF3/target.h b/src/main/target/ZCOREF3/target.h index c65abb7d9..5c07c7819 100644 --- a/src/main/target/ZCOREF3/target.h +++ b/src/main/target/ZCOREF3/target.h @@ -101,6 +101,5 @@ #define TARGET_IO_PORTF (BIT(0)|BIT(1)|BIT(3)|BIT(4)) #define USABLE_TIMER_CHANNEL_COUNT 17 // PPM, 8 PWM, UART3 RX/TX, LED Strip - #define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(15) | TIM_N(16) | TIM_N(17) ) diff --git a/src/main/telemetry/frsky.c b/src/main/telemetry/frsky.c index 33bd13193..d698b958a 100644 --- a/src/main/telemetry/frsky.c +++ b/src/main/telemetry/frsky.c @@ -19,6 +19,8 @@ * Initial FrSky Telemetry implementation by silpstream @ rcgroups. * Addition protocol work by airmamaf @ github. */ + +#include #include #include diff --git a/src/main/telemetry/telemetry.c b/src/main/telemetry/telemetry.c index 96e2193e9..6373d166e 100644 --- a/src/main/telemetry/telemetry.c +++ b/src/main/telemetry/telemetry.c @@ -15,6 +15,7 @@ * along with Cleanflight. If not, see . */ +#include #include #include @@ -22,7 +23,6 @@ #ifdef TELEMETRY -#include "drivers/gpio.h" #include "drivers/timer.h" #include "drivers/serial.h" #include "drivers/serial_softserial.h"