diff --git a/companion/src/firmwares/er9x/simulator/er9xsimulator.cpp b/companion/src/firmwares/er9x/simulator/er9xsimulator.cpp index 10fd339c9..259717dc0 100644 --- a/companion/src/firmwares/er9x/simulator/er9xsimulator.cpp +++ b/companion/src/firmwares/er9x/simulator/er9xsimulator.cpp @@ -73,14 +73,14 @@ void getTrims(int16_t values[4]) values[i] = g_model.trim[i]; } -#define GPIO_TRIM_LH_L pind -#define GPIO_TRIM_LV_DN pind -#define GPIO_TRIM_RV_UP pind -#define GPIO_TRIM_RH_L pind -#define GPIO_TRIM_LH_R pind -#define GPIO_TRIM_LV_UP pind -#define GPIO_TRIM_RV_DN pind -#define GPIO_TRIM_RH_R pind +#define TRIMS_GPIO_REG_LHL pind +#define TRIMS_GPIO_REG_LVD pind +#define TRIMS_GPIO_REG_RVU pind +#define TRIMS_GPIO_REG_RHL pind +#define TRIMS_GPIO_REG_LHR pind +#define TRIMS_GPIO_REG_LVU pind +#define TRIMS_GPIO_REG_RVD pind +#define TRIMS_GPIO_REG_RHR pind #define PIN_TRIM_LH_L (1<PIO_PDSR -#define GPIO_BUTTON_EXIT PIOC->PIO_PDSR -#define GPIO_BUTTON_UP PIOC->PIO_PDSR -#define GPIO_BUTTON_DOWN PIOC->PIO_PDSR -#define GPIO_BUTTON_RIGHT PIOC->PIO_PDSR -#define GPIO_BUTTON_LEFT PIOC->PIO_PDSR -#define PIN_BUTTON_MENU 0x00000020 -#define PIN_BUTTON_EXIT 0x01000000 -#define PIN_BUTTON_UP 0x00000002 -#define PIN_BUTTON_DOWN 0x00000020 -#define PIN_BUTTON_RIGHT 0x00000010 -#define PIN_BUTTON_LEFT 0x00000008 +#define KEYS_GPIO_REG_MENU PIOB->PIO_PDSR +#define KEYS_GPIO_REG_EXIT PIOC->PIO_PDSR +#define KEYS_GPIO_REG_UP PIOC->PIO_PDSR +#define KEYS_GPIO_REG_DOWN PIOC->PIO_PDSR +#define KEYS_GPIO_REG_RIGHT PIOC->PIO_PDSR +#define KEYS_GPIO_REG_LEFT PIOC->PIO_PDSR +#define KEYS_GPIO_PIN_MENU 0x00000020 +#define KEYS_GPIO_PIN_EXIT 0x01000000 +#define KEYS_GPIO_PIN_UP 0x00000002 +#define KEYS_GPIO_PIN_DOWN 0x00000020 +#define KEYS_GPIO_PIN_RIGHT 0x00000010 +#define KEYS_GPIO_PIN_LEFT 0x00000008 #define KEY_CASE(key, pin, mask) \ case key: \ @@ -135,23 +135,23 @@ void simuSetSwitch(uint8_t swtch, int8_t state) void simuSetKey(uint8_t key, bool state) { switch (key) { - KEY_CASE(KEY_MENU, GPIO_BUTTON_MENU, PIN_BUTTON_MENU) - KEY_CASE(KEY_EXIT, GPIO_BUTTON_EXIT, PIN_BUTTON_EXIT) - KEY_CASE(KEY_RIGHT, GPIO_BUTTON_RIGHT, PIN_BUTTON_RIGHT) - KEY_CASE(KEY_LEFT, GPIO_BUTTON_LEFT, PIN_BUTTON_LEFT) - KEY_CASE(KEY_UP, GPIO_BUTTON_UP, PIN_BUTTON_UP) - KEY_CASE(KEY_DOWN, GPIO_BUTTON_DOWN, PIN_BUTTON_DOWN) + KEY_CASE(KEY_MENU, KEYS_GPIO_REG_MENU, KEYS_GPIO_PIN_MENU) + KEY_CASE(KEY_EXIT, KEYS_GPIO_REG_EXIT, KEYS_GPIO_PIN_EXIT) + KEY_CASE(KEY_RIGHT, KEYS_GPIO_REG_RIGHT, KEYS_GPIO_PIN_RIGHT) + KEY_CASE(KEY_LEFT, KEYS_GPIO_REG_LEFT, KEYS_GPIO_PIN_LEFT) + KEY_CASE(KEY_UP, KEYS_GPIO_REG_UP, KEYS_GPIO_PIN_UP) + KEY_CASE(KEY_DOWN, KEYS_GPIO_REG_DOWN, KEYS_GPIO_PIN_DOWN) } } -#define GPIO_TRIM_LH_L PIOA->PIO_PDSR -#define GPIO_TRIM_LV_DN PIOA->PIO_PDSR -#define GPIO_TRIM_RV_UP PIOA->PIO_PDSR -#define GPIO_TRIM_RH_L PIOA->PIO_PDSR -#define GPIO_TRIM_LH_R PIOB->PIO_PDSR -#define GPIO_TRIM_LV_UP PIOC->PIO_PDSR -#define GPIO_TRIM_RV_DN PIOC->PIO_PDSR -#define GPIO_TRIM_RH_R PIOC->PIO_PDSR +#define TRIMS_GPIO_REG_LHL PIOA->PIO_PDSR +#define TRIMS_GPIO_REG_LVD PIOA->PIO_PDSR +#define TRIMS_GPIO_REG_RVU PIOA->PIO_PDSR +#define TRIMS_GPIO_REG_RHL PIOA->PIO_PDSR +#define TRIMS_GPIO_REG_LHR PIOB->PIO_PDSR +#define TRIMS_GPIO_REG_LVU PIOC->PIO_PDSR +#define TRIMS_GPIO_REG_RVD PIOC->PIO_PDSR +#define TRIMS_GPIO_REG_RHR PIOC->PIO_PDSR #define PIN_TRIM_LH_L 0x00800000 #define PIN_TRIM_LV_DN 0x01000000 #define PIN_TRIM_RV_UP 0x00000002 @@ -166,14 +166,14 @@ void simuSetKey(uint8_t key, bool state) void simuSetTrim(uint8_t trim, bool state) { switch (trim) { - TRIM_CASE(0, GPIO_TRIM_LH_L, PIN_TRIM_LH_L) - TRIM_CASE(1, GPIO_TRIM_LH_R, PIN_TRIM_LH_R) - TRIM_CASE(2, GPIO_TRIM_LV_DN, PIN_TRIM_LV_DN) - TRIM_CASE(3, GPIO_TRIM_LV_UP, PIN_TRIM_LV_UP) - TRIM_CASE(4, GPIO_TRIM_RV_DN, PIN_TRIM_RV_DN) - TRIM_CASE(5, GPIO_TRIM_RV_UP, PIN_TRIM_RV_UP) - TRIM_CASE(6, GPIO_TRIM_RH_L, PIN_TRIM_RH_L) - TRIM_CASE(7, GPIO_TRIM_RH_R, PIN_TRIM_RH_R) + TRIM_CASE(0, TRIMS_GPIO_REG_LHL, PIN_TRIM_LH_L) + TRIM_CASE(1, TRIMS_GPIO_REG_LHR, PIN_TRIM_LH_R) + TRIM_CASE(2, TRIMS_GPIO_REG_LVD, PIN_TRIM_LV_DN) + TRIM_CASE(3, TRIMS_GPIO_REG_LVU, PIN_TRIM_LV_UP) + TRIM_CASE(4, TRIMS_GPIO_REG_RVD, PIN_TRIM_RV_DN) + TRIM_CASE(5, TRIMS_GPIO_REG_RVU, PIN_TRIM_RV_UP) + TRIM_CASE(6, TRIMS_GPIO_REG_RHL, PIN_TRIM_RH_L) + TRIM_CASE(7, TRIMS_GPIO_REG_RHR, PIN_TRIM_RH_R) } } diff --git a/companion/src/firmwares/opentx/simulator/CMakeLists.txt b/companion/src/firmwares/opentx/simulator/CMakeLists.txt index a36bf02f3..3b8fdf585 100644 --- a/companion/src/firmwares/opentx/simulator/CMakeLists.txt +++ b/companion/src/firmwares/opentx/simulator/CMakeLists.txt @@ -3,12 +3,12 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set(RADIO_SRC_DIRECTORY ${PROJECT_SOURCE_DIR}/../../radio/src) -add_custom_target(about_lbm_9x +add_custom_target(about_lbm_9x make lbm PCB=9X WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY} ) -add_custom_target(about_lbm_taranis +add_custom_target(about_lbm_taranis make lbm PCB=TARANIS WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY} ) @@ -23,7 +23,7 @@ add_custom_target(lua_exports WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY} ) -set(OPENTX_SRC_FILES +set(OPENTX_SRC_FILES opentxsimulator.cpp ) @@ -105,32 +105,32 @@ set(OPENTX_LIBRARIES # 9X with ATmega64 target_include_directories(opentx-9x${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/stock) -target_compile_definitions(opentx-9x${SUFFIX}-simulator PRIVATE PCBSTD PCB9X CPUM64 ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-9x${SUFFIX}-simulator PRIVATE PCBSTD PCB9X CPUM64 EEPROM_RLC ${COMMON_DEFINITIONS}) target_link_libraries(opentx-9x${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # 9XR with ATmega64 target_include_directories(opentx-9xr${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/stock) -target_compile_definitions(opentx-9xr${SUFFIX}-simulator PRIVATE PCBSTD PCB9XR CPUM64 ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-9xr${SUFFIX}-simulator PRIVATE PCBSTD PCB9XR CPUM64 EEPROM_RLC ${COMMON_DEFINITIONS}) target_link_libraries(opentx-9xr${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # 9X with ATmega128 target_include_directories(opentx-9x128${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/stock) -target_compile_definitions(opentx-9x128${SUFFIX}-simulator PRIVATE PCBSTD PCB9X CPUM128 ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-9x128${SUFFIX}-simulator PRIVATE PCBSTD PCB9X CPUM128 EEPROM_RLC ${COMMON_DEFINITIONS}) target_link_libraries(opentx-9x128${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # 9XR with ATmega128 target_include_directories(opentx-9xr128${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/stock) -target_compile_definitions(opentx-9xr128${SUFFIX}-simulator PRIVATE PCBSTD PCB9XR CPUM128 ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-9xr128${SUFFIX}-simulator PRIVATE PCBSTD PCB9XR CPUM128 EEPROM_RLC ${COMMON_DEFINITIONS}) target_link_libraries(opentx-9xr128${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # Gruvin9x target_include_directories(opentx-gruvin9x${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/gruvin9x) -target_compile_definitions(opentx-gruvin9x${SUFFIX}-simulator PRIVATE PCBGRUVIN9X CPUM2560 VOICE SDCARD ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-gruvin9x${SUFFIX}-simulator PRIVATE PCBGRUVIN9X CPUM2560 EEPROM_RLC VOICE SDCARD ${COMMON_DEFINITIONS}) target_link_libraries(opentx-gruvin9x${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # Mega2560 target_include_directories(opentx-mega2560${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/mega2560) -target_compile_definitions(opentx-mega2560${SUFFIX}-simulator PRIVATE PCBMEGA2560 CPUM2560 SDCARD ROTARY_ENCODERS=2 ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-mega2560${SUFFIX}-simulator PRIVATE PCBMEGA2560 CPUM2560 EEPROM_RLC SDCARD ROTARY_ENCODERS=2 ${COMMON_DEFINITIONS}) target_link_libraries(opentx-mega2560${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # Sky9x @@ -145,17 +145,17 @@ target_link_libraries(opentx-9xrpro${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIE # Taranis standard target_include_directories(opentx-taranis${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/taranis) -target_compile_definitions(opentx-taranis${SUFFIX}-simulator PRIVATE PCBTARANIS CPUARM CPUSTM32 VOICE SDCARD ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-taranis${SUFFIX}-simulator PRIVATE PCBTARANIS CPUARM CPUSTM32 EEPROM_RLC VOICE SDCARD ${COMMON_DEFINITIONS}) target_link_libraries(opentx-taranis${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # Taranis Plus target_include_directories(opentx-taranisplus${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/taranis) -target_compile_definitions(opentx-taranisplus${SUFFIX}-simulator PRIVATE PCBTARANIS REVPLUS CPUARM CPUSTM32 VOICE SDCARD ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-taranisplus${SUFFIX}-simulator PRIVATE PCBTARANIS REVPLUS CPUARM CPUSTM32 EEPROM_RLC VOICE SDCARD ${COMMON_DEFINITIONS}) target_link_libraries(opentx-taranisplus${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) # Taranis X9E target_include_directories(opentx-taranisx9e${SUFFIX}-simulator PRIVATE ${RADIO_SRC_DIRECTORY}/targets/taranis) -target_compile_definitions(opentx-taranisx9e${SUFFIX}-simulator PRIVATE PCBTARANIS REVPLUS REV9E CPUARM CPUSTM32 STM32F40_41xxx VOICE SDCARD ${COMMON_DEFINITIONS}) +target_compile_definitions(opentx-taranisx9e${SUFFIX}-simulator PRIVATE PCBTARANIS REVPLUS REV9E CPUARM CPUSTM32 STM32F40_41xxx EEPROM_RLC VOICE SDCARD ${COMMON_DEFINITIONS}) target_link_libraries(opentx-taranisx9e${SUFFIX}-simulator PRIVATE ${COMMON_LIBRARIES}) ADD_CUSTOM_TARGET(opentx-simulators diff --git a/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp b/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp index a56b4beb9..d4eaf3d62 100644 --- a/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp +++ b/companion/src/firmwares/opentx/simulator/opentxsimulator.cpp @@ -83,7 +83,6 @@ namespace NAMESPACE { #include "radio/src/pulses/ppm_arm.cpp" #include "radio/src/pulses/pxx_arm.cpp" #include "radio/src/pulses/dsm2_arm.cpp" -#include "radio/src/eeprom_conversions.cpp" #include "radio/src/main_arm.cpp" #include "radio/src/pulses/pulses_arm.cpp" #include "radio/src/tasks_arm.cpp" @@ -98,10 +97,14 @@ namespace NAMESPACE { #endif #include "radio/src/eeprom_common.cpp" -#if defined(PCBSKY9X) -#include "radio/src/eeprom_raw.cpp" -#else +#if defined(EEPROM_RLC) #include "radio/src/eeprom_rlc.cpp" +#else +#include "radio/src/eeprom_raw.cpp" +#endif + +#if defined(PCBTARANIS) || defined(PCBSKY9X) +#include "radio/src/eeprom_conversions.cpp" #endif #include "radio/src/opentx.cpp" @@ -326,8 +329,14 @@ uint8_t getStickMode() #if defined(PCBTARANIS) void resetTrims() { - GPIOE->IDR |= PIN_TRIM_LH_L | PIN_TRIM_LH_R | PIN_TRIM_LV_DN | PIN_TRIM_LV_UP; - GPIOC->IDR |= PIN_TRIM_RV_DN | PIN_TRIM_RV_UP | PIN_TRIM_RH_L | PIN_TRIM_RH_R; + TRIMS_GPIO_REG_RVD |= TRIMS_GPIO_PIN_RVD; + TRIMS_GPIO_REG_RVU |= TRIMS_GPIO_PIN_RVU; + TRIMS_GPIO_REG_RHL |= TRIMS_GPIO_PIN_RHL; + TRIMS_GPIO_REG_RHR |= TRIMS_GPIO_PIN_RHR; + TRIMS_GPIO_REG_LVD |= TRIMS_GPIO_PIN_LVD; + TRIMS_GPIO_REG_LVU |= TRIMS_GPIO_PIN_LVU; + TRIMS_GPIO_REG_LHL |= TRIMS_GPIO_PIN_LHL; + TRIMS_GPIO_REG_LHR |= TRIMS_GPIO_PIN_LHR; } #endif diff --git a/companion/src/firmwares/th9x/simulator/th9xsimulator.cpp b/companion/src/firmwares/th9x/simulator/th9xsimulator.cpp index 7aa354953..4a30e85dc 100644 --- a/companion/src/firmwares/th9x/simulator/th9xsimulator.cpp +++ b/companion/src/firmwares/th9x/simulator/th9xsimulator.cpp @@ -78,14 +78,14 @@ void eeprom_RESV_mismatch(void) assert(!"Should never been called. Only needed by VC++ (debug mode)"); } -#define GPIO_TRIM_LH_L pind -#define GPIO_TRIM_LV_DN pind -#define GPIO_TRIM_RV_UP pind -#define GPIO_TRIM_RH_L pind -#define GPIO_TRIM_LH_R pind -#define GPIO_TRIM_LV_UP pind -#define GPIO_TRIM_RV_DN pind -#define GPIO_TRIM_RH_R pind +#define TRIMS_GPIO_REG_LHL pind +#define TRIMS_GPIO_REG_LVD pind +#define TRIMS_GPIO_REG_RVU pind +#define TRIMS_GPIO_REG_RHL pind +#define TRIMS_GPIO_REG_LHR pind +#define TRIMS_GPIO_REG_LVU pind +#define TRIMS_GPIO_REG_RVD pind +#define TRIMS_GPIO_REG_RHR pind #define PIN_TRIM_LH_L (1<= 8) + lcdSize = (width * height) * (depth / 8); + else + lcdSize = (width * ((height+7)/8)) * depth; previousBuf = (unsigned char *)malloc(lcdSize); memset(previousBuf, 0, lcdSize); } @@ -106,45 +109,57 @@ class lcdWidget : public QWidget { { QRgb rgb; - if (lightEnable) - rgb = qRgb(_r, _g, _b); - else - rgb = qRgb(161, 161, 161); - - p.setBackground(QBrush(rgb)); - p.eraseRect(0, 0, 2*lcdWidth, 2*lcdHeight); - - if (lcdBuf) { - if (lcdDepth == 1) { - rgb = qRgb(0, 0, 0); - p.setPen(rgb); - p.setBrush(QBrush(rgb)); + if (lcdDepth >= 8) { + for (int x=0; x>8)/0x0f, 255*((z&0x0F0)>>4)/0x0f, 255*(z&0x00F)/0x0f); + p.setPen(rgb); + p.drawPoint(x, y); + } } + } + else { + if (lightEnable) + rgb = qRgb(_r, _g, _b); + else + rgb = qRgb(161, 161, 161); - unsigned int previousDepth = 0xFF; + p.setBackground(QBrush(rgb)); + p.eraseRect(0, 0, 2*lcdWidth, 2*lcdHeight); - for (int y=0; y> 4) : (lcdBuf[idx] & 0x0F); - if (z) { - if (z != previousDepth) { - previousDepth = z; - if (lightEnable) - rgb = qRgb(_r-(z*_r)/15, _g-(z*_g)/15, _b-(z*_b)/15); - else - rgb = qRgb(161-(z*161)/15, 161-(z*161)/15, 161-(z*161)/15); - p.setPen(rgb); - p.setBrush(QBrush(rgb)); + else { + unsigned int z = (y & 1) ? (lcdBuf[idx] >> 4) : (lcdBuf[idx] & 0x0F); + if (z) { + if (z != previousDepth) { + previousDepth = z; + if (lightEnable) + rgb = qRgb(_r-(z*_r)/15, _g-(z*_g)/15, _b-(z*_b)/15); + else + rgb = qRgb(161-(z*161)/15, 161-(z*161)/15, 161-(z*161)/15); + p.setPen(rgb); + p.setBrush(QBrush(rgb)); + } + p.drawRect(2*x, 2*y, 1, 1); } - p.drawRect(2*x, 2*y, 1, 1); } } } diff --git a/companion/src/simulation/simulatordialog.cpp b/companion/src/simulation/simulatordialog.cpp index c3cdb28f9..20f17990b 100644 --- a/companion/src/simulation/simulatordialog.cpp +++ b/companion/src/simulation/simulatordialog.cpp @@ -78,6 +78,7 @@ SimulatorDialog9X::SimulatorDialog9X(QWidget * parent, SimulatorInterface *simul beepShow(0) { lcdWidth = 128; + lcdHeight = 64; lcdDepth = 1; initUi(ui); @@ -154,6 +155,7 @@ SimulatorDialogTaranis::SimulatorDialogTaranis(QWidget * parent, SimulatorInterf ui(new Ui::SimulatorDialogTaranis) { lcdWidth = 212; + lcdHeight = 64; lcdDepth = 4; initUi(ui); @@ -449,7 +451,7 @@ void SimulatorDialog::initUi(T * ui) simulator->setSdPath(g.profile[g.id()].sdPath()); simulator->setVolumeGain(g.profile[g.id()].volumeGain()); - lcd->setData(simulator->getLcd(), lcdWidth, 64, lcdDepth); + lcd->setData(simulator->getLcd(), lcdWidth, lcdHeight, lcdDepth); if (flags & SIMULATOR_FLAGS_STICK_MODE_LEFT) { nodeLeft->setCenteringY(false); diff --git a/companion/src/simulation/simulatordialog.h b/companion/src/simulation/simulatordialog.h index 23c829732..18f30dfdf 100644 --- a/companion/src/simulation/simulatordialog.h +++ b/companion/src/simulation/simulatordialog.h @@ -107,6 +107,7 @@ class SimulatorDialog : public QDialog int beepVal; int lcdWidth; + int lcdHeight; int lcdDepth; TelemetrySimulator * TelemetrySimu; TrainerSimulator * TrainerSimu; diff --git a/companion/src/simulation/simulatorimport.h b/companion/src/simulation/simulatorimport.h index 704274a0c..f890edbf2 100644 --- a/companion/src/simulation/simulatorimport.h +++ b/companion/src/simulation/simulatorimport.h @@ -46,7 +46,7 @@ pind = 0; if (inputs.rotenc) pind |= 0x20; #endif -#ifdef PCBSKY9X +#if defined(PCBSKY9X) if (inputs.rotenc) PIOB->PIO_PDSR &= ~0x40; else PIOB->PIO_PDSR |= 0x40; #endif diff --git a/radio/src/Makefile b/radio/src/Makefile index d0d76c1ee..9e1649446 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -414,7 +414,7 @@ ifeq ($(PCB), $(filter $(PCB), STD 9X 9XR)) SDCARD = NO THR_TRACE = NO INCDIRS += targets/stock - CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBSTD -DCPUM64 -DEEPROM_VARIANT=$(shell echo ${EEPROM_VARIANT} | bc) + CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBSTD -DCPUM64 -DEEPROM_RLC -DEEPROM_VARIANT=$(shell echo ${EEPROM_VARIANT} | bc) BOARDSRC = main_avr.cpp targets/stock/board_stock.cpp EXTRABOARDSRC = targets/common_avr/adc_driver.cpp targets/common_avr/telemetry_driver.cpp ifeq ($(GUI), YES) @@ -495,7 +495,7 @@ ifeq ($(PCB), $(filter $(PCB), STD128 9X128 9XR128)) SDCARD = NO THR_TRACE = NO EEPROM_VARIANT += ${M128_VARIANT} - CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBSTD -DCPUM128 -DEEPROM_VARIANT=$(shell echo ${EEPROM_VARIANT} | bc) + CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBSTD -DCPUM128 -DEEPROM_RLC -DEEPROM_VARIANT=$(shell echo ${EEPROM_VARIANT} | bc) INCDIRS += targets/stock BOARDSRC = main_avr.cpp targets/stock/board_stock.cpp EXTRABOARDSRC = targets/common_avr/adc_driver.cpp targets/stock/lcd_driver.cpp targets/common_avr/telemetry_driver.cpp @@ -570,7 +570,7 @@ ifeq ($(PCB), $(filter $(PCB), 9X2561)) SDCARD = NO THR_TRACE = YES EEPROM_VARIANT += ${M2561_VARIANT} - CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBSTD -DCPUM2561 -DEEPROM_VARIANT=$(shell echo ${EEPROM_VARIANT} | bc) + CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBSTD -DCPUM2561 -DEEPROM_RLC -DEEPROM_VARIANT=$(shell echo ${EEPROM_VARIANT} | bc) INCDIRS += targets/stock BOARDSRC = main_avr.cpp targets/stock/board_stock.cpp EXTRABOARDSRC = targets/common_avr/adc_driver.cpp targets/stock/lcd_driver.cpp targets/common_avr/telemetry_driver.cpp @@ -640,7 +640,7 @@ ifeq ($(PCB), GRUVIN9X) TRGT = avr- MCU = atmega2560 OPT = s - CPPDEFS += -DF_CPU=$(F_CPU)UL -DPCBGRUVIN9X -DCPUM2560 -DEEPROM_VARIANT=0 -DAUDIO -DHAPTIC + CPPDEFS += -DF_CPU=$(F_CPU)UL -DPCBGRUVIN9X -DCPUM2560 -DEEPROM_RLC -DEEPROM_VARIANT=0 -DAUDIO -DHAPTIC SDCARD = NO BUZZER = NO THR_TRACE = YES @@ -685,7 +685,7 @@ ifeq ($(PCB), MEGA2560) TRGT = avr- MCU = atmega2560 OPT = s - CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBMEGA2560 -DCPUM2560 -DEEPROM_VARIANT=0 -DAUDIO + CPPDEFS = -DF_CPU=$(F_CPU)UL -DPCBMEGA2560 -DCPUM2560 -DEEPROM_RLC -DEEPROM_VARIANT=0 -DAUDIO SDCARD = NO BUZZER = YES THR_TRACE = YES @@ -884,19 +884,20 @@ ifeq ($(PCB), TARANIS) AUTOSWITCH = YES AUTOSOURCE = YES DBLKEYS = YES + TIMERS = 2 + CPPDEFS += -DTIMERS=$(TIMERS) PPM_LIMITS_SYMETRICAL = YES PPM_CENTER_ADJUSTABLE = YES DSM2 = PPM - CPPDEFS += -DPCBTARANIS -DCPUARM -DCPUSTM32 -DVIRTUALINPUTS -DLUAINPUTS -DXCURVES -DEEPROM_VARIANT=0 -DAUDIO -DPXX + CPPDEFS += -DPCBTARANIS -DCPUARM -DCPUSTM32 -DVIRTUALINPUTS -DLUAINPUTS -DXCURVES -DEEPROM_RLC -DEEPROM_VARIANT=0 -DAUDIO -DPXX INCDIRS += targets/taranis $(THIRDPARTY) $(COOSDIR) $(COOSDIR)/kernel $(COOSDIR)/portable + CPPDEFS += -DHSE_VALUE=12000000 ifeq ($(PCBREV), REV9E) STM32LIBPATH = $(THIRDPARTY)/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries - CPPDEFS += -DHSE_VALUE=12000000 CPPDEFS += -DSTM32F40_41xxx INCDIRS += $(STM32LIBPATH)/CMSIS/Device/ST/STM32F4xx/Include $(STM32LIBPATH)/CMSIS/Include $(STM32LIBPATH)/STM32F4xx_StdPeriph_Driver/inc else STM32LIBPATH= $(THIRDPARTY)/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries - CPPDEFS += -DHSE_VALUE=12000000 INCDIRS += $(STM32LIBPATH)/STM32F2xx_StdPeriph_Driver/inc $(STM32LIBPATH)/CMSIS/Device/ST/STM32F2xx/Include $(STM32LIBPATH)/CMSIS/include endif STM32USBPATH = $(THIRDPARTY)/STM32_USB-Host-Device_Lib_V2.1.0/Libraries @@ -911,7 +912,8 @@ ifeq ($(PCB), TARANIS) PULSESSRC = pulses/pulses_arm.cpp pulses/ppm_arm.cpp pulses/pxx_arm.cpp CPPSRC += tasks_arm.cpp audio_arm.cpp sbus.cpp telemetry/telemetry.cpp CPPSRC += targets/taranis/pulses_driver.cpp targets/taranis/keys_driver.cpp targets/taranis/adc_driver.cpp targets/taranis/trainer_driver.cpp targets/taranis/audio_driver.cpp targets/taranis/uart3_driver.cpp targets/taranis/telemetry_driver.cpp - CPPSRC += bmp.cpp gui/$(GUIDIRECTORY)/view_channels.cpp gui/$(GUIDIRECTORY)/view_about.cpp gui/$(GUIDIRECTORY)/view_text.cpp loadboot.cpp debug.cpp + CPPSRC += bmp.cpp gui/$(GUIDIRECTORY)/view_channels.cpp gui/$(GUIDIRECTORY)/view_about.cpp gui/$(GUIDIRECTORY)/view_text.cpp debug.cpp + CPPSRC += loadboot.cpp ifeq ($(PCBREV), REV9E) EXTRABOARDSRC += targets/taranis/top_lcd_driver.cpp SRC += targets/taranis/system_stm32f4xx.c @@ -1678,7 +1680,7 @@ remallsrc: # Link: create ELF output file from object files. ifeq ($(ARCH), AVR) -%.elf: allsrc.cpp +opentx.elf: allsrc.cpp @echo @echo $(MSG_COMPILING) $@ $(CC) $(AVRCPPFLAGS) $< --output $@ $(LDFLAGS) @@ -1689,7 +1691,7 @@ else $(AS) $< -o $@ TMP = $(SRC:.c=.o) OBJS = $(TMP:.s=.o) -%.elf: allsrc.cpp $(OBJS) +opentx.elf: allsrc.cpp $(OBJS) @echo @echo $(MSG_COMPILING) $@ $(CC) $(ARMCPPFLAGS) $< -o allsrc.o diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 340107833..221658f52 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1047,7 +1047,7 @@ void checkFailsafe() #if defined(GUI) void checkAll() { -#if !defined(PCBSKY9X) +#if defined(EEPROM_RLC) checkLowEEPROM(); #endif @@ -1098,7 +1098,7 @@ void checkStartupWarnings() } #endif -#if !defined(PCBSKY9X) +#if defined(EEPROM_RLC) void checkLowEEPROM() { if (g_eeGeneral.disableMemoryWarning) return; @@ -1391,7 +1391,7 @@ void getADC() for (uint32_t x=0; x> 3; -#if defined(PCBTARANIS) +#if defined(VIRTUALINPUTS) if (calibrationState) v = temp[x] >> 1; StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[x]; if (!calibrationState && IS_POT_MULTIPOS(x) && calib->count>0 && calib->countPIO_PDSR, 0x40) @@ -175,14 +176,14 @@ void simuSetTrim(uint8_t trim, bool state) // TRACE("trim=%d state=%d", trim, state); switch (trim) { - TRIM_CASE(0, GPIO_TRIM_LH_L, PIN_TRIM_LH_L) - TRIM_CASE(1, GPIO_TRIM_LH_R, PIN_TRIM_LH_R) - TRIM_CASE(2, GPIO_TRIM_LV_DN, PIN_TRIM_LV_DN) - TRIM_CASE(3, GPIO_TRIM_LV_UP, PIN_TRIM_LV_UP) - TRIM_CASE(4, GPIO_TRIM_RV_DN, PIN_TRIM_RV_DN) - TRIM_CASE(5, GPIO_TRIM_RV_UP, PIN_TRIM_RV_UP) - TRIM_CASE(6, GPIO_TRIM_RH_L, PIN_TRIM_RH_L) - TRIM_CASE(7, GPIO_TRIM_RH_R, PIN_TRIM_RH_R) + TRIM_CASE(0, TRIMS_GPIO_REG_LHL, TRIMS_GPIO_PIN_LHL) + TRIM_CASE(1, TRIMS_GPIO_REG_LHR, TRIMS_GPIO_PIN_LHR) + TRIM_CASE(2, TRIMS_GPIO_REG_LVD, TRIMS_GPIO_PIN_LVD) + TRIM_CASE(3, TRIMS_GPIO_REG_LVU, TRIMS_GPIO_PIN_LVU) + TRIM_CASE(4, TRIMS_GPIO_REG_RVD, TRIMS_GPIO_PIN_RVD) + TRIM_CASE(5, TRIMS_GPIO_REG_RVU, TRIMS_GPIO_PIN_RVU) + TRIM_CASE(6, TRIMS_GPIO_REG_RHL, TRIMS_GPIO_PIN_RHL) + TRIM_CASE(7, TRIMS_GPIO_REG_RHR, TRIMS_GPIO_PIN_RHR) } } @@ -211,14 +212,14 @@ void simuSetSwitch(uint8_t swtch, int8_t state) SWITCH_3_CASE(16, GPIO_PIN_SW_Q_L, GPIO_PIN_SW_Q_H, PIN_SW_Q_L, PIN_SW_Q_H) SWITCH_3_CASE(17, GPIO_PIN_SW_R_L, GPIO_PIN_SW_R_H, PIN_SW_R_L, PIN_SW_R_H) #elif defined(PCBTARANIS) - SWITCH_3_CASE(0, GPIO_PIN_SW_A_L, GPIO_PIN_SW_A_H, PIN_SW_A_L, PIN_SW_A_H) - SWITCH_3_CASE(1, GPIO_PIN_SW_B_L, GPIO_PIN_SW_B_H, PIN_SW_B_L, PIN_SW_B_H) - SWITCH_3_CASE(2, GPIO_PIN_SW_C_L, GPIO_PIN_SW_C_H, PIN_SW_C_L, PIN_SW_C_H) - SWITCH_3_CASE(3, GPIO_PIN_SW_D_L, GPIO_PIN_SW_D_H, PIN_SW_D_L, PIN_SW_D_H) - SWITCH_3_CASE(4, GPIO_PIN_SW_E_H, GPIO_PIN_SW_E_L, PIN_SW_E_H, PIN_SW_E_L) - SWITCH_CASE(5, GPIO_PIN_SW_F, PIN_SW_F) - SWITCH_3_CASE(6, GPIO_PIN_SW_G_L, GPIO_PIN_SW_G_H, PIN_SW_G_L, PIN_SW_G_H) - SWITCH_CASE(7, GPIO_PIN_SW_H, PIN_SW_H) + SWITCH_3_CASE(0, SWITCHES_GPIO_REG_A_L, SWITCHES_GPIO_REG_A_H, SWITCHES_GPIO_PIN_A_L, SWITCHES_GPIO_PIN_A_H) + SWITCH_3_CASE(1, SWITCHES_GPIO_REG_B_L, SWITCHES_GPIO_REG_B_H, SWITCHES_GPIO_PIN_B_L, SWITCHES_GPIO_PIN_B_H) + SWITCH_3_CASE(2, SWITCHES_GPIO_REG_C_L, SWITCHES_GPIO_REG_C_H, SWITCHES_GPIO_PIN_C_L, SWITCHES_GPIO_PIN_C_H) + SWITCH_3_CASE(3, SWITCHES_GPIO_REG_D_L, SWITCHES_GPIO_REG_D_H, SWITCHES_GPIO_PIN_D_L, SWITCHES_GPIO_PIN_D_H) + SWITCH_3_CASE(4, SWITCHES_GPIO_REG_E_H, SWITCHES_GPIO_REG_E_L, SWITCHES_GPIO_PIN_E_H, SWITCHES_GPIO_PIN_E_L) + SWITCH_CASE(5, SWITCHES_GPIO_REG_F, SWITCHES_GPIO_PIN_F) + SWITCH_3_CASE(6, SWITCHES_GPIO_REG_G_L, SWITCHES_GPIO_REG_G_H, SWITCHES_GPIO_PIN_G_L, SWITCHES_GPIO_PIN_G_H) + SWITCH_CASE(7, SWITCHES_GPIO_REG_H, SWITCHES_GPIO_PIN_H) #elif defined(PCBSKY9X) SWITCH_CASE(0, PIOC->PIO_PDSR, 1<<20) SWITCH_CASE(1, PIOA->PIO_PDSR, 1<<15) @@ -796,6 +797,7 @@ FRESULT f_open (FIL * fil, const TCHAR *name, BYTE flag) return FR_INVALID_NAME; } fil->fsize = tmp.st_size; + fil->fptr = 0; } fil->fs = (FATFS*)fopen(realPath, (flag & FA_WRITE) ? "wb+" : "rb+"); fil->fptr = 0; diff --git a/radio/src/targets/simu/simpgmspace.h b/radio/src/targets/simu/simpgmspace.h index f77ee89df..8349dfc95 100644 --- a/radio/src/targets/simu/simpgmspace.h +++ b/radio/src/targets/simu/simpgmspace.h @@ -37,6 +37,8 @@ #ifndef simpgmspace_h #define simpgmspace_h +extern int g_snapshot_idx; + #ifndef __GNUC__ #include #define sleep(x) Sleep(x) @@ -188,7 +190,7 @@ extern Pwm pwm; extern sem_t *eeprom_write_sem; -#if defined(PCBSKY9X) +#if !defined(EEPROM_RLC) extern uint32_t eeprom_pointer; extern uint8_t * eeprom_buffer_data; extern volatile int32_t eeprom_buffer_size; @@ -419,20 +421,35 @@ extern OS_MutexID audioMutex; #define CoTickDelay(...) #define CoCreateFlag(...) 0 #define CoGetOSTime(...) 0 -inline void UART3_Configure(uint32_t baudrate, uint32_t masterClock) { } #define UART_Stop(...) #define UART3_Stop(...) #define USART_GetITStatus(...) 0 -#if defined(PCBTARANIS) +#if defined(CPUSTM32) inline void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { } #define GPIO_SetBits(GPIOx, pin) GPIOx->BSRRL |= pin #define GPIO_ResetBits(GPIOx, pin) GPIOx->BSRRL &= ~pin #define GPIO_ReadInputDataBit(GPIOx, pin) (GPIOx->BSRRL & pin) #define RCC_AHB1PeriphClockCmd(...) #define RCC_APB2PeriphClockCmd(...) +inline void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) { } +inline void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState) { } +inline void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) { } +inline FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG) { return RESET; } +inline uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx) { return 0; } +inline void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) { } +inline void DMA_DeInit(DMA_Stream_TypeDef* DMAy_Streamx) { } +inline void DMA_Init(DMA_Stream_TypeDef* DMAy_Streamx, DMA_InitTypeDef* DMA_InitStruct) { } +inline void DMA_ITConfig(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT, FunctionalState NewState) { } +inline void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct) { } +inline void DMA_Cmd(DMA_Stream_TypeDef* DMAy_Streamx, FunctionalState NewState) { } +inline FlagStatus DMA_GetFlagStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_FLAG) { return RESET; } +inline void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState) { } +inline void UART3_Configure(uint32_t baudrate, uint32_t masterClock) { } +inline void NVIC_Init(NVIC_InitTypeDef *) { } #endif +inline void delay_01us(int dummy) { } #define configure_pins(...) #if defined(SDCARD) diff --git a/radio/src/targets/sky9x/board_sky9x.h b/radio/src/targets/sky9x/board_sky9x.h index 4446e12ee..f2c084d78 100644 --- a/radio/src/targets/sky9x/board_sky9x.h +++ b/radio/src/targets/sky9x/board_sky9x.h @@ -48,80 +48,80 @@ extern uint16_t ResetReason; #define FIRMWARE_ADDRESS 0x00400000 #if defined(REVA) - #define GPIO_BUTTON_MENU PIOB->PIO_PDSR - #define GPIO_BUTTON_EXIT PIOA->PIO_PDSR - #define GPIO_BUTTON_UP PIOC->PIO_PDSR - #define GPIO_BUTTON_DOWN PIOC->PIO_PDSR - #define GPIO_BUTTON_RIGHT PIOC->PIO_PDSR - #define GPIO_BUTTON_LEFT PIOC->PIO_PDSR - #define PIN_BUTTON_MENU 0x00000040 - #define PIN_BUTTON_EXIT 0x80000000 - #define PIN_BUTTON_UP 0x00000004 - #define PIN_BUTTON_DOWN 0x00000008 - #define PIN_BUTTON_RIGHT 0x00000010 - #define PIN_BUTTON_LEFT 0x00000020 + #define KEYS_GPIO_REG_MENU PIOB->PIO_PDSR + #define KEYS_GPIO_REG_EXIT PIOA->PIO_PDSR + #define KEYS_GPIO_REG_UP PIOC->PIO_PDSR + #define KEYS_GPIO_REG_DOWN PIOC->PIO_PDSR + #define KEYS_GPIO_REG_RIGHT PIOC->PIO_PDSR + #define KEYS_GPIO_REG_LEFT PIOC->PIO_PDSR + #define KEYS_GPIO_PIN_MENU 0x00000040 + #define KEYS_GPIO_PIN_EXIT 0x80000000 + #define KEYS_GPIO_PIN_UP 0x00000004 + #define KEYS_GPIO_PIN_DOWN 0x00000008 + #define KEYS_GPIO_PIN_RIGHT 0x00000010 + #define KEYS_GPIO_PIN_LEFT 0x00000020 #else - #define GPIO_BUTTON_MENU PIOB->PIO_PDSR - #define GPIO_BUTTON_EXIT PIOC->PIO_PDSR - #define GPIO_BUTTON_UP PIOC->PIO_PDSR - #define GPIO_BUTTON_DOWN PIOC->PIO_PDSR - #define GPIO_BUTTON_RIGHT PIOC->PIO_PDSR - #define GPIO_BUTTON_LEFT PIOC->PIO_PDSR - #define PIN_BUTTON_MENU 0x00000020 - #define PIN_BUTTON_EXIT 0x01000000 - #define PIN_BUTTON_UP 0x00000002 - #define PIN_BUTTON_DOWN 0x00000020 - #define PIN_BUTTON_RIGHT 0x00000010 - #define PIN_BUTTON_LEFT 0x00000008 + #define KEYS_GPIO_REG_MENU PIOB->PIO_PDSR + #define KEYS_GPIO_REG_EXIT PIOC->PIO_PDSR + #define KEYS_GPIO_REG_UP PIOC->PIO_PDSR + #define KEYS_GPIO_REG_DOWN PIOC->PIO_PDSR + #define KEYS_GPIO_REG_RIGHT PIOC->PIO_PDSR + #define KEYS_GPIO_REG_LEFT PIOC->PIO_PDSR + #define KEYS_GPIO_PIN_MENU 0x00000020 + #define KEYS_GPIO_PIN_EXIT 0x01000000 + #define KEYS_GPIO_PIN_UP 0x00000002 + #define KEYS_GPIO_PIN_DOWN 0x00000020 + #define KEYS_GPIO_PIN_RIGHT 0x00000010 + #define KEYS_GPIO_PIN_LEFT 0x00000008 #endif #if defined(REVX) - #define GPIO_TRIM_LH_L PIOB->PIO_PDSR - #define GPIO_TRIM_LV_DN PIOA->PIO_PDSR - #define GPIO_TRIM_RV_UP PIOC->PIO_PDSR - #define GPIO_TRIM_RH_L PIOA->PIO_PDSR - #define GPIO_TRIM_LH_R PIOA->PIO_PDSR - #define GPIO_TRIM_LV_UP PIOC->PIO_PDSR - #define GPIO_TRIM_RV_DN PIOA->PIO_PDSR - #define GPIO_TRIM_RH_R PIOC->PIO_PDSR + #define TRIMS_GPIO_REG_LHL PIOB->PIO_PDSR + #define TRIMS_GPIO_REG_LVD PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_RVU PIOC->PIO_PDSR + #define TRIMS_GPIO_REG_RHL PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_LHR PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_LVU PIOC->PIO_PDSR + #define TRIMS_GPIO_REG_RVD PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_RHR PIOC->PIO_PDSR #else - #define GPIO_TRIM_LH_L PIOA->PIO_PDSR - #define GPIO_TRIM_LV_DN PIOA->PIO_PDSR - #define GPIO_TRIM_RV_UP PIOA->PIO_PDSR - #define GPIO_TRIM_RH_L PIOA->PIO_PDSR - #define GPIO_TRIM_LH_R PIOB->PIO_PDSR - #define GPIO_TRIM_LV_UP PIOC->PIO_PDSR - #define GPIO_TRIM_RV_DN PIOC->PIO_PDSR - #define GPIO_TRIM_RH_R PIOC->PIO_PDSR + #define TRIMS_GPIO_REG_LHL PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_LVD PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_RVU PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_RHL PIOA->PIO_PDSR + #define TRIMS_GPIO_REG_LHR PIOB->PIO_PDSR + #define TRIMS_GPIO_REG_LVU PIOC->PIO_PDSR + #define TRIMS_GPIO_REG_RVD PIOC->PIO_PDSR + #define TRIMS_GPIO_REG_RHR PIOC->PIO_PDSR #endif #if defined(REVX) - #define PIN_TRIM_LH_L 0x00000010 - #define PIN_TRIM_LV_DN 0x01000000 - #define PIN_TRIM_RV_UP 0x00000400 - #define PIN_TRIM_RH_L 0x00000001 - #define PIN_TRIM_LH_R 0x00800000 - #define PIN_TRIM_LV_UP 0x10000000 - #define PIN_TRIM_RV_DN 0x00000002 - #define PIN_TRIM_RH_R 0x00000200 + #define TRIMS_GPIO_PIN_LHL 0x00000010 + #define TRIMS_GPIO_PIN_LVD 0x01000000 + #define TRIMS_GPIO_PIN_RVU 0x00000400 + #define TRIMS_GPIO_PIN_RHL 0x00000001 + #define TRIMS_GPIO_PIN_LHR 0x00800000 + #define TRIMS_GPIO_PIN_LVU 0x10000000 + #define TRIMS_GPIO_PIN_RVD 0x00000002 + #define TRIMS_GPIO_PIN_RHR 0x00000200 #elif defined(REVA) - #define PIN_TRIM_LH_L 0x00000080 - #define PIN_TRIM_LV_DN 0x08000000 - #define PIN_TRIM_RV_UP 0x40000000 - #define PIN_TRIM_RH_L 0x20000000 - #define PIN_TRIM_LH_R 0x00000010 - #define PIN_TRIM_LV_UP 0x10000000 - #define PIN_TRIM_RV_DN 0x00000400 - #define PIN_TRIM_RH_R 0x00000200 + #define TRIMS_GPIO_PIN_LHL 0x00000080 + #define TRIMS_GPIO_PIN_LVD 0x08000000 + #define TRIMS_GPIO_PIN_RVU 0x40000000 + #define TRIMS_GPIO_PIN_RHL 0x20000000 + #define TRIMS_GPIO_PIN_LHR 0x00000010 + #define TRIMS_GPIO_PIN_LVU 0x10000000 + #define TRIMS_GPIO_PIN_RVD 0x00000400 + #define TRIMS_GPIO_PIN_RHR 0x00000200 #else - #define PIN_TRIM_LH_L 0x00800000 - #define PIN_TRIM_LV_DN 0x01000000 - #define PIN_TRIM_RV_UP 0x00000002 - #define PIN_TRIM_RH_L 0x00000001 - #define PIN_TRIM_LH_R 0x00000010 - #define PIN_TRIM_LV_UP 0x10000000 - #define PIN_TRIM_RV_DN 0x00000400 - #define PIN_TRIM_RH_R 0x00000200 + #define TRIMS_GPIO_PIN_LHL 0x00800000 + #define TRIMS_GPIO_PIN_LVD 0x01000000 + #define TRIMS_GPIO_PIN_RVU 0x00000002 + #define TRIMS_GPIO_PIN_RHL 0x00000001 + #define TRIMS_GPIO_PIN_LHR 0x00000010 + #define TRIMS_GPIO_PIN_LVU 0x10000000 + #define TRIMS_GPIO_PIN_RVD 0x00000400 + #define TRIMS_GPIO_PIN_RHR 0x00000200 #endif void usbMassStorage(); @@ -187,7 +187,7 @@ void writeFlash(uint32_t * address, uint32_t * buffer); extern uint32_t readKeys(); extern uint32_t readTrims(); #define TRIMS_PRESSED() (readTrims()) -#define KEYS_PRESSED() (~readKeys()) +#define KEYS_PRESSED() (readKeys()) #define DBLKEYS_PRESSED_RGT_LFT(i) ((in & (0x20 + 0x40)) == (0x20 + 0x40)) #define DBLKEYS_PRESSED_UP_DWN(i) ((in & (0x10 + 0x08)) == (0x10 + 0x08)) #define DBLKEYS_PRESSED_RGT_UP(i) ((in & (0x20 + 0x10)) == (0x20 + 0x10)) diff --git a/radio/src/targets/sky9x/keys_driver.cpp b/radio/src/targets/sky9x/keys_driver.cpp index ea4eb9184..e85d09408 100644 --- a/radio/src/targets/sky9x/keys_driver.cpp +++ b/radio/src/targets/sky9x/keys_driver.cpp @@ -52,32 +52,33 @@ uint32_t readKeys() register uint32_t result = 0; x = lcdLock ? lcdInputs : PIOC->PIO_PDSR; // 6 LEFT, 5 RIGHT, 4 DOWN, 3 UP () + x = ~x; #if defined(REVA) - if (x & PIN_BUTTON_RIGHT) + if (x & KEYS_GPIO_PIN_RIGHT) result |= 0x02 << KEY_RIGHT; - if (x & PIN_BUTTON_LEFT) + if (x & KEYS_GPIO_PIN_LEFT) result |= 0x02 << KEY_LEFT; - if (x & PIN_BUTTON_UP) + if (x & KEYS_GPIO_PIN_UP) result |= 0x02 << KEY_UP; - if (x & PIN_BUTTON_DOWN) + if (x & KEYS_GPIO_PIN_DOWN) result |= 0x02 << KEY_DOWN; - if (GPIO_BUTTON_EXIT & PIN_BUTTON_EXIT) + if (KEYS_GPIO_REG_EXIT & KEYS_GPIO_PIN_EXIT) result |= 0x02 << KEY_EXIT; - if (GPIO_BUTTON_MENU & 0x000000040) + if (KEYS_GPIO_REG_MENU & 0x000000040) result |= 0x02 << KEY_MENU; #else - if (x & PIN_BUTTON_RIGHT) + if (x & KEYS_GPIO_PIN_RIGHT) result |= 0x02 << KEY_RIGHT; - if (x & PIN_BUTTON_UP) + if (x & KEYS_GPIO_PIN_UP) result |= 0x02 << KEY_UP; - if (x & PIN_BUTTON_LEFT) + if (x & KEYS_GPIO_PIN_LEFT) result |= 0x02 << KEY_LEFT; - if (x & PIN_BUTTON_DOWN) + if (x & KEYS_GPIO_PIN_DOWN) result |= 0x02 << KEY_DOWN; - if (x & PIN_BUTTON_EXIT) + if (x & KEYS_GPIO_PIN_EXIT) result |= 0x02 << KEY_EXIT; - if (GPIO_BUTTON_MENU & PIN_BUTTON_MENU) + if (KEYS_GPIO_REG_MENU & KEYS_GPIO_PIN_MENU) result |= 0x02 << KEY_MENU; #endif @@ -90,21 +91,21 @@ uint32_t readTrims() { register uint32_t result = 0; - if (~GPIO_TRIM_LH_L & PIN_TRIM_LH_L) + if (~TRIMS_GPIO_REG_LHL & TRIMS_GPIO_PIN_LHL) result |= 0x01; - if (~GPIO_TRIM_LV_DN & PIN_TRIM_LV_DN) + if (~TRIMS_GPIO_REG_LVD & TRIMS_GPIO_PIN_LVD) result |= 0x04; - if (~GPIO_TRIM_RV_UP & PIN_TRIM_RV_UP) + if (~TRIMS_GPIO_REG_RVU & TRIMS_GPIO_PIN_RVU) result |= 0x20; - if (~GPIO_TRIM_RH_L & PIN_TRIM_RH_L) + if (~TRIMS_GPIO_REG_RHL & TRIMS_GPIO_PIN_RHL) result |= 0x40; - if (~GPIO_TRIM_LH_R & PIN_TRIM_LH_R) + if (~TRIMS_GPIO_REG_LHR & TRIMS_GPIO_PIN_LHR) result |= 0x02; - if (~GPIO_TRIM_LV_UP & PIN_TRIM_LV_UP) + if (~TRIMS_GPIO_REG_LVU & TRIMS_GPIO_PIN_LVU) result |= 0x08; - if (~GPIO_TRIM_RV_DN & PIN_TRIM_RV_DN) + if (~TRIMS_GPIO_REG_RVD & TRIMS_GPIO_PIN_RVD) result |= 0x10; - if (~GPIO_TRIM_RH_R & PIN_TRIM_RH_R) + if (~TRIMS_GPIO_REG_RHR & TRIMS_GPIO_PIN_RHR) result |= 0x80; return result; @@ -117,7 +118,7 @@ uint8_t trimDown(uint8_t idx) uint8_t keyDown() { - return (~readKeys() & 0x7E) || REA_DOWN(); + return readKeys() || REA_DOWN(); } void readKeysAndTrims() diff --git a/radio/src/targets/stock/board_stock.h b/radio/src/targets/stock/board_stock.h index a4fa5c6f6..222eeb3de 100644 --- a/radio/src/targets/stock/board_stock.h +++ b/radio/src/targets/stock/board_stock.h @@ -39,35 +39,35 @@ #include "../common_avr/board_avr.h" -#define GPIO_BUTTON_MENU pinb -#define GPIO_BUTTON_EXIT pinb -#define GPIO_BUTTON_RIGHT pinb -#define GPIO_BUTTON_LEFT pinb -#define GPIO_BUTTON_UP pinb -#define GPIO_BUTTON_DOWN pinb -#define PIN_BUTTON_MENU (1<APB2ENR |= RCC_APB2ENR_ADC1EN; // Enable clock - RCC->AHB1ENR |= RCC_AHB1Periph_GPIOADC; // Enable ports A&C clocks + RCC->AHB1ENR |= ADC_AHB1Periph_GPIO; // Enable ports A&C clocks RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN; // Enable DMA2 clock - configure_pins(PIN_STK_J1 | PIN_STK_J2 | PIN_STK_J3 | PIN_STK_J4 | - PIN_FLP_J1, PIN_ANALOG | PIN_PORTA); + configure_pins(ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV | + ADC_GPIO_PIN_POT1, PIN_ANALOG | PIN_PORTA); #if defined(REV9E) - configure_pins(PIN_FLP_J2 | PIN_FLP_J6, PIN_ANALOG|PIN_PORTB); + configure_pins(ADC_GPIO_PIN_POT2 | ADC_GPIO_PIN_POT6, PIN_ANALOG|PIN_PORTB); #elif defined(REVPLUS) - configure_pins(PIN_FLP_J2 | PIN_FLP_J3, PIN_ANALOG|PIN_PORTB); + configure_pins(ADC_GPIO_PIN_POT2 | ADC_GPIO_PIN_POT3, PIN_ANALOG|PIN_PORTB); #else - configure_pins(PIN_FLP_J2, PIN_ANALOG|PIN_PORTB); + configure_pins(ADC_GPIO_PIN_POT2, PIN_ANALOG|PIN_PORTB); #endif - configure_pins(PIN_SLD_J1 | PIN_SLD_J2 | PIN_MVOLT, PIN_ANALOG | PIN_PORTC); + configure_pins(ADC_GPIO_PIN_SLIDER1 | ADC_GPIO_PIN_SLIDER2 | ADC_GPIO_PIN_BATT, PIN_ANALOG | PIN_PORTC); ADC1->CR1 = ADC_CR1_SCAN; ADC1->CR2 = ADC_CR2_ADON | ADC_CR2_DMA | ADC_CR2_DDS; @@ -128,7 +122,7 @@ void adcInit() #if defined(REV9E) RCC->APB2ENR |= RCC_APB2ENR_ADC3EN ; // Enable clock - configure_pins( PIN_FLP_J3 | PIN_FLP_J4 | PIN_FLP_J5, PIN_ANALOG | PIN_PORTF ) ; + configure_pins( ADC_GPIO_PIN_POT3 | ADC_GPIO_PIN_POT4 | ADC_GPIO_PIN_POT5, PIN_ANALOG | PIN_PORTF ) ; ADC3->CR1 = ADC_CR1_SCAN ; ADC3->CR2 = ADC_CR2_ADON | ADC_CR2_DMA | ADC_CR2_DDS ; @@ -144,7 +138,7 @@ void adcInit() DMA2_Stream1->M0AR = CONVERT_PTR_UINT(Analog_values + NUMBER_ANALOG_ADC1); DMA2_Stream1->NDTR = NUMBER_ANALOG_ADC3; DMA2_Stream1->FCR = DMA_SxFCR_DMDIS | DMA_SxFCR_FTH_0 ; -#endif // #if defined(REV9E) +#endif } void adcRead() @@ -179,18 +173,6 @@ void adcRead() } DMA2_Stream0->CR &= ~DMA_SxCR_EN ; // Disable DMA #endif - - // adc direction correct - for (uint32_t i=0; iBSRRL = PIN_LCD_NCS -#define LCD_NCS_LOW() GPIO_LCD_NCS->BSRRH = PIN_LCD_NCS +#define LCD_NCS_HIGH() LCD_GPIO_NCS->BSRRL = LCD_GPIO_PIN_NCS +#define LCD_NCS_LOW() LCD_GPIO_NCS->BSRRH = LCD_GPIO_PIN_NCS -#define LCD_A0_HIGH() GPIO_LCD_SPI->BSRRL = PIN_LCD_A0 -#define LCD_A0_LOW() GPIO_LCD_SPI->BSRRH = PIN_LCD_A0 +#define LCD_A0_HIGH() LCD_GPIO_SPI->BSRRL = LCD_GPIO_PIN_A0 +#define LCD_A0_LOW() LCD_GPIO_SPI->BSRRH = LCD_GPIO_PIN_A0 -#define LCD_RST_HIGH() GPIO_LCD_RST->BSRRL = PIN_LCD_RST -#define LCD_RST_LOW() GPIO_LCD_RST->BSRRH = PIN_LCD_RST +#define LCD_RST_HIGH() LCD_GPIO_RST->BSRRL = LCD_GPIO_PIN_RST +#define LCD_RST_LOW() LCD_GPIO_RST->BSRRH = LCD_GPIO_PIN_RST -#define LCD_CLK_HIGH() GPIO_LCD_SPI->BSRRL = PIN_LCD_CLK -#define LCD_CLK_LOW() GPIO_LCD_SPI->BSRRH = PIN_LCD_CLK +#define LCD_CLK_HIGH() LCD_GPIO_SPI->BSRRL = LCD_GPIO_PIN_CLK +#define LCD_CLK_LOW() LCD_GPIO_SPI->BSRRH = LCD_GPIO_PIN_CLK -#define LCD_MOSI_HIGH() GPIO_LCD_SPI->BSRRL = PIN_LCD_MOSI -#define LCD_MOSI_LOW() GPIO_LCD_SPI->BSRRH = PIN_LCD_MOSI +#define LCD_MOSI_HIGH() LCD_GPIO_SPI->BSRRL = LCD_GPIO_PIN_MOSI +#define LCD_MOSI_LOW() LCD_GPIO_SPI->BSRRH = LCD_GPIO_PIN_MOSI void AspiCmd(u8 Command_Byte); void AspiData(u8 Para_data); diff --git a/radio/src/targets/taranis/audio_driver.cpp b/radio/src/targets/taranis/audio_driver.cpp index 751e890db..ae1398558 100644 --- a/radio/src/targets/taranis/audio_driver.cpp +++ b/radio/src/targets/taranis/audio_driver.cpp @@ -76,7 +76,7 @@ void dacInit() dacTimerInit(); RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock - configure_pins( 0x0010, PIN_ANALOG | PIN_PORTA ) ; + configure_pins( GPIO_Pin_4, PIN_ANALOG | PIN_PORTA ) ; RCC->APB1ENR |= RCC_APB1ENR_DACEN ; // Enable clock RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN ; // Enable DMA1 clock diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index a75c4fd01..eb52fdd55 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -140,7 +140,7 @@ void configure_pins( uint32_t pins, uint16_t config ); extern uint16_t sessionTimer; #define SLAVE_MODE() (g_model.trainerMode == TRAINER_MODE_SLAVE) -#define TRAINER_CONNECTED() (GPIO_ReadInputDataBit(GPIOTRNDET, PIN_TRNDET) == Bit_RESET) +#define TRAINER_CONNECTED() (GPIO_ReadInputDataBit(TRAINER_GPIO_DETECT, TRAINER_GPIO_PIN_DETECT) == Bit_RESET) #ifdef __cplusplus extern "C" { @@ -184,12 +184,12 @@ uint32_t isFirmwareStart(const void * buffer); uint32_t isBootloaderStart(const void * buffer); // Pulses driver -#define INTERNAL_MODULE_ON() GPIO_SetBits(GPIO_INT_RF_PWR, PIN_INT_RF_PWR) -#define INTERNAL_MODULE_OFF() GPIO_ResetBits(GPIO_INT_RF_PWR, PIN_INT_RF_PWR) -#define EXTERNAL_MODULE_ON() GPIO_SetBits(GPIO_EXT_RF_PWR, PIN_EXT_RF_PWR) -#define EXTERNAL_MODULE_OFF() GPIO_ResetBits(GPIO_EXT_RF_PWR, PIN_EXT_RF_PWR) -#define IS_INTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(GPIO_INT_RF_PWR, PIN_INT_RF_PWR) == Bit_SET) -#define IS_EXTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(GPIO_EXT_RF_PWR, PIN_EXT_RF_PWR) == Bit_SET) +#define INTERNAL_MODULE_ON() GPIO_SetBits(INTMODULE_GPIO_PWR, INTMODULE_GPIO_PIN_PWR) +#define INTERNAL_MODULE_OFF() GPIO_ResetBits(INTMODULE_GPIO_PWR, INTMODULE_GPIO_PIN_PWR) +#define EXTERNAL_MODULE_ON() GPIO_SetBits(EXTMODULE_GPIO_PWR, EXTMODULE_GPIO_PIN_PWR) +#define EXTERNAL_MODULE_OFF() GPIO_ResetBits(EXTMODULE_GPIO_PWR, EXTMODULE_GPIO_PIN_PWR) +#define IS_INTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(INTMODULE_GPIO_PWR, INTMODULE_GPIO_PIN_PWR) == Bit_SET) +#define IS_EXTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(EXTMODULE_GPIO_PWR, EXTMODULE_GPIO_PIN_PWR) == Bit_SET) void init_no_pulses(uint32_t port); void disable_no_pulses(uint32_t port); void init_ppm( uint32_t module_index ); @@ -219,7 +219,7 @@ void keysInit(void); uint32_t readKeys(void); uint32_t readTrims(void); #define TRIMS_PRESSED() (readTrims()) -#define KEYS_PRESSED() (~readKeys()) +#define KEYS_PRESSED() (readKeys()) #define DBLKEYS_PRESSED_RGT_LFT(i) ((in & ((2<CCR4 != 0) || (TIM_BL->CCR2 != 0) + #define IS_BACKLIGHT_ON() (BACKLIGHT_TIMER->CCR4 != 0) || (BACKLIGHT_TIMER->CCR2 != 0) #else #define setBacklight(xx) TIM10->CCR1 = 100-xx #define __BACKLIGHT_ON TIM10->CCR1 = 100-g_eeGeneral.backlightBright @@ -324,7 +324,7 @@ void hapticOff(void); #define HAPTIC_ON() hapticOn() #endif -// UART3 driver +// SERIAL_USART driver #define DEBUG_BAUDRATE 115200 void uart3Init(unsigned int mode, unsigned int protocol); void uart3Putc(const char c); diff --git a/radio/src/targets/taranis/bootloader/Makefile b/radio/src/targets/taranis/bootloader/Makefile index 2eb7ae545..ed21ef625 100755 --- a/radio/src/targets/taranis/bootloader/Makefile +++ b/radio/src/targets/taranis/bootloader/Makefile @@ -94,7 +94,7 @@ ifeq ($(PCB), TARANIS) LDSCRIPT = ../stm32_ramBoot.ld TRGT = arm-none-eabi- CPPDEFS += -DHSE_VALUE=12000000 - CPPDEFS += -DPCBTARANIS + CPPDEFS += -DPCBTARANIS -DEEPROM_RLC FULL_PRJ = $(PROJECT)_ramBoot ifeq ($(PCBREV), REV9E) CPPDEFS += -DSTM32F40_41xxx diff --git a/radio/src/targets/taranis/bootloader/boot.cpp b/radio/src/targets/taranis/bootloader/boot.cpp index 173db2afa..2327e1c3d 100755 --- a/radio/src/targets/taranis/bootloader/boot.cpp +++ b/radio/src/targets/taranis/bootloader/boot.cpp @@ -199,7 +199,7 @@ void interrupt10ms(void) Tenms |= 1; // 10 mS has passed uint8_t enuk = KEY_MENU; - uint8_t in = ~readKeys(); + uint8_t in = readKeys(); for (int i = 1; i < 7; i++) { uint8_t value = in & (1 << i); @@ -806,7 +806,7 @@ int main() } if (state == ST_REBOOT) { - if ((~readKeys() & 0x7E) == 0) { + if (readKeys() == 0) { lcd_clear(); lcdRefresh(); lcdRefreshWait(); diff --git a/radio/src/targets/taranis/diskio.cpp b/radio/src/targets/taranis/diskio.cpp index 51847fc70..e956675bb 100644 --- a/radio/src/targets/taranis/diskio.cpp +++ b/radio/src/targets/taranis/diskio.cpp @@ -243,7 +243,7 @@ void stm32_dma_transfer( ) { DMA_InitTypeDef DMA_InitStructure; - WORD rw_workbyte[] = { 0xffff }; + WORD dummy[] = { 0xffff }; DMA_DeInit(SD_DMA_Stream_SPI_RX); DMA_DeInit(SD_DMA_Stream_SPI_TX); @@ -263,64 +263,42 @@ void stm32_dma_transfer( DMA_InitStructure.DMA_MemoryBurst =DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst =DMA_PeripheralBurst_Single; - //seperate RX & TX - if ( receive ) { //true =read - - /* DMA1 channel3 configuration SPI2 RX ---------------------------------------------*/ + // separate RX & TX + if (receive) { DMA_InitStructure.DMA_Memory0BaseAddr = (DWORD)buff; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_Init(SD_DMA_Stream_SPI_RX, &DMA_InitStructure); - - /* DMA1 channel4 configuration SPI2 TX ---------------------------------------------*/ - DMA_InitStructure.DMA_Memory0BaseAddr = (DWORD)rw_workbyte; + DMA_InitStructure.DMA_Memory0BaseAddr = (DWORD)dummy; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; DMA_Init(SD_DMA_Stream_SPI_TX, &DMA_InitStructure); - } - else {//false = write - -#if _FS_READONLY == 0 //READ AND WRITE = write enabled. - /* DMA1 channel2 configuration SPI1 RX ---------------------------------------------*/ - /* DMA1 channel4 configuration SPI2 RX ---------------------------------------------*/ - DMA_InitStructure.DMA_Memory0BaseAddr = (DWORD)rw_workbyte; + else { +#if _FS_READONLY == 0 + DMA_InitStructure.DMA_Memory0BaseAddr = (DWORD)dummy; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; DMA_Init(SD_DMA_Stream_SPI_RX, &DMA_InitStructure); - - /* DMA1 channel3 configuration SPI1 TX ---------------------------------------------*/ - /* DMA1 channel5 configuration SPI2 TX ---------------------------------------------*/ DMA_InitStructure.DMA_Memory0BaseAddr = (DWORD)buff; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_Init(SD_DMA_Stream_SPI_TX, &DMA_InitStructure); #endif - } - /* Enable DMA RX Channel */ + /* Enable DMA Channels */ DMA_Cmd(SD_DMA_Stream_SPI_RX, ENABLE); - /* Enable DMA TX Channel */ DMA_Cmd(SD_DMA_Stream_SPI_TX, ENABLE); /* Enable SPI TX/RX request */ SPI_I2S_DMACmd(SD_SPI, SPI_I2S_DMAReq_Rx | SPI_I2S_DMAReq_Tx, ENABLE); - /* Wait until DMA1_Channel 3 Transfer Complete */ - while (DMA_GetFlagStatus(SD_DMA_Stream_SPI_TX, SD_DMA_FLAG_SPI_TC_TX) == RESET) { ; } - - /* Wait until DMA1_Channel 2 Receive Complete */ - while (DMA_GetFlagStatus(SD_DMA_Stream_SPI_RX, SD_DMA_FLAG_SPI_TC_RX) == RESET) { ; } - // same w/o function-call: - // while ( ( ( DMA1->ISR ) & SD_DMA_FLAG_SPI_TC_RX ) == RESET ) { ; } - - /* Disable DMA RX Channel */ + /* Disable DMA Channels */ DMA_Cmd(SD_DMA_Stream_SPI_RX, DISABLE); - /* Disable DMA TX Channel */ DMA_Cmd(SD_DMA_Stream_SPI_TX, DISABLE); /* Disable SPI RX/TX request */ @@ -368,9 +346,7 @@ void power_on (void) /* Configure SPI pins: SCK MISO and MOSI with alternate function push-down */ GPIO_InitStructure.GPIO_Pin = SD_GPIO_PIN_SCK | SD_GPIO_PIN_MOSI|SD_GPIO_PIN_MISO; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(SD_GPIO, &GPIO_InitStructure); GPIO_PinAFConfig(SD_GPIO,SD_GPIO_PinSource_SCK ,SD_GPIO_AF); @@ -418,8 +394,7 @@ void power_off (void) RCC_APB1PeriphClockCmd(SD_RCC_APB1Periph_SPI, DISABLE); //All SPI-Pins to input with weak internal pull-downs - GPIO_InitStructure.GPIO_Pin = SD_GPIO_PIN_SCK | SD_GPIO_PIN_MISO - | SD_GPIO_PIN_MOSI; + GPIO_InitStructure.GPIO_Pin = SD_GPIO_PIN_SCK | SD_GPIO_PIN_MISO | SD_GPIO_PIN_MOSI; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 4913e55bc..abd7775fc 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -3,314 +3,321 @@ // Keys #if defined(REV9E) - #define RCC_AHB1Periph_GPIOBUTTON (RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOF|RCC_AHB1Periph_GPIOG) + #define KEYS_RCC_AHB1Periph_GPIO (RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOF|RCC_AHB1Periph_GPIOG) #else - #define RCC_AHB1Periph_GPIOBUTTON (RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE) + #define KEYS_RCC_AHB1Periph_GPIO (RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE) #endif - -#define GPIO_BUTTON_PLUS GPIOE->IDR -#define GPIO_BUTTON_MINUS GPIOE->IDR -#define GPIO_BUTTON_MENU GPIOD->IDR -#define GPIO_BUTTON_EXIT GPIOD->IDR -#define GPIO_BUTTON_PAGE GPIOD->IDR +#define KEYS_GPIO_REG_PLUS GPIOE->IDR +#define KEYS_GPIO_REG_MINUS GPIOE->IDR +#define KEYS_GPIO_REG_MENU GPIOD->IDR +#define KEYS_GPIO_REG_EXIT GPIOD->IDR +#define KEYS_GPIO_REG_PAGE GPIOD->IDR #if defined(REV9E) #if defined(SIMU) - #define PIN_BUTTON_PLUS GPIO_Pin_5 // This is for SIMU: reuse rotary encoder pins to map UP and DOWN keyboard keys - #define PIN_BUTTON_MINUS GPIO_Pin_6 // This is for SIMU: reuse rotary encoder pins to map UP and DOWN keyboard keys + #define KEYS_GPIO_PIN_PLUS GPIO_Pin_5 // This is for SIMU: reuse rotary encoder pins to map UP and DOWN keyboard keys + #define KEYS_GPIO_PIN_MINUS GPIO_Pin_6 // This is for SIMU: reuse rotary encoder pins to map UP and DOWN keyboard keys #endif - #define GPIO_BUTTON_ENTER GPIOF->IDR - #define PIN_BUTTON_ENTER GPIO_Pin_0 // PF.00 + #define KEYS_GPIO_REG_ENTER GPIOF->IDR + #define KEYS_GPIO_PIN_ENTER GPIO_Pin_0 // PF.00 #else - #define PIN_BUTTON_PLUS GPIO_Pin_10 // PE.10 - #define PIN_BUTTON_MINUS GPIO_Pin_11 // PE.11 - #define GPIO_BUTTON_ENTER GPIOE->IDR - #define PIN_BUTTON_ENTER GPIO_Pin_12 // PE.12 + #define KEYS_GPIO_PIN_PLUS GPIO_Pin_10 // PE.10 + #define KEYS_GPIO_PIN_MINUS GPIO_Pin_11 // PE.11 + #define KEYS_GPIO_REG_ENTER GPIOE->IDR + #define KEYS_GPIO_PIN_ENTER GPIO_Pin_12 // PE.12 #endif -#define PIN_BUTTON_MENU GPIO_Pin_7 // PD.07 -#define PIN_BUTTON_PAGE GPIO_Pin_3 // PD.02 -#define PIN_BUTTON_EXIT GPIO_Pin_2 // PD.03 +#define KEYS_GPIO_PIN_MENU GPIO_Pin_7 // PD.07 +#define KEYS_GPIO_PIN_PAGE GPIO_Pin_3 // PD.02 +#define KEYS_GPIO_PIN_EXIT GPIO_Pin_2 // PD.03 // Trims -#define GPIO_TRIM_RV_DN GPIOC->IDR -#define PIN_TRIM_RV_DN GPIO_Pin_3 // PC.03 -#define GPIO_TRIM_RV_UP GPIOC->IDR -#define PIN_TRIM_RV_UP GPIO_Pin_2 // PC.02 -#define GPIO_TRIM_RH_L GPIOC->IDR -#define PIN_TRIM_RH_L GPIO_Pin_1 // PC.01 -#define GPIO_TRIM_RH_R GPIOC->IDR -#define PIN_TRIM_RH_R GPIO_Pin_13 // PC.13 -#define GPIO_TRIM_LH_L GPIOE->IDR -#define PIN_TRIM_LH_L GPIO_Pin_4 // PE.04 -#define GPIO_TRIM_LH_R GPIOE->IDR -#define PIN_TRIM_LH_R GPIO_Pin_3 // PE.03 +#define TRIMS_GPIO_REG_RVD GPIOC->IDR +#define TRIMS_GPIO_PIN_RVD GPIO_Pin_3 // PC.03 +#define TRIMS_GPIO_REG_RVU GPIOC->IDR +#define TRIMS_GPIO_PIN_RVU GPIO_Pin_2 // PC.02 +#define TRIMS_GPIO_REG_RHL GPIOC->IDR +#define TRIMS_GPIO_PIN_RHL GPIO_Pin_1 // PC.01 +#define TRIMS_GPIO_REG_RHR GPIOC->IDR +#define TRIMS_GPIO_PIN_RHR GPIO_Pin_13 // PC.13 +#define TRIMS_GPIO_REG_LHL GPIOE->IDR +#define TRIMS_GPIO_PIN_LHL GPIO_Pin_4 // PE.04 +#define TRIMS_GPIO_REG_LHR GPIOE->IDR +#define TRIMS_GPIO_PIN_LHR GPIO_Pin_3 // PE.03 #if defined(REV9E) - #define GPIO_TRIM_LV_DN GPIOG->IDR - #define PIN_TRIM_LV_DN GPIO_Pin_1 // PG.01 - #define GPIO_TRIM_LV_UP GPIOG->IDR - #define PIN_TRIM_LV_UP GPIO_Pin_0 // PG.00 + #define TRIMS_GPIO_REG_LVD GPIOG->IDR + #define TRIMS_GPIO_PIN_LVD GPIO_Pin_1 // PG.01 + #define TRIMS_GPIO_REG_LVU GPIOG->IDR + #define TRIMS_GPIO_PIN_LVU GPIO_Pin_0 // PG.00 #else - #define GPIO_TRIM_LV_DN GPIOE->IDR - #define PIN_TRIM_LV_DN GPIO_Pin_6 // PE.06 - #define GPIO_TRIM_LV_UP GPIOE->IDR - #define PIN_TRIM_LV_UP GPIO_Pin_5 // PE.05 + #define TRIMS_GPIO_REG_LVD GPIOE->IDR + #define TRIMS_GPIO_PIN_LVD GPIO_Pin_6 // PE.06 + #define TRIMS_GPIO_REG_LVU GPIOE->IDR + #define TRIMS_GPIO_PIN_LVU GPIO_Pin_5 // PE.05 #endif // Switches -#define GPIO_PIN_SW_A_H GPIOB->IDR -#define PIN_SW_A_H GPIO_Pin_5 // PB.05 -#define GPIO_PIN_SW_A_L GPIOE->IDR -#define PIN_SW_A_L GPIO_Pin_0 // PE.00 +#define SWITCHES_GPIO_REG_A_H GPIOB->IDR +#define SWITCHES_GPIO_PIN_A_H GPIO_Pin_5 // PB.05 +#define SWITCHES_GPIO_REG_A_L GPIOE->IDR +#define SWITCHES_GPIO_PIN_A_L GPIO_Pin_0 // PE.00 -#define GPIO_PIN_SW_B_H GPIOE->IDR -#define PIN_SW_B_H GPIO_Pin_1 // PE.01 -#define GPIO_PIN_SW_B_L GPIOE->IDR -#define PIN_SW_B_L GPIO_Pin_2 // PE.02 +#define SWITCHES_GPIO_REG_B_H GPIOE->IDR +#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_1 // PE.01 +#define SWITCHES_GPIO_REG_B_L GPIOE->IDR +#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_2 // PE.02 -#define GPIO_PIN_SW_C_H GPIOE->IDR -#define PIN_SW_C_H GPIO_Pin_15 // PE.15 -#define GPIO_PIN_SW_C_L GPIOA->IDR -#define PIN_SW_C_L GPIO_Pin_5 // PA.05 +#define SWITCHES_GPIO_REG_C_H GPIOE->IDR +#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_15 // PE.15 +#define SWITCHES_GPIO_REG_C_L GPIOA->IDR +#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_5 // PA.05 #if defined(REVPLUS) - #define GPIO_PIN_SW_D_H (GPIOE->IDR) - #define PIN_SW_D_H GPIO_Pin_7 // PE.07 - #define GPIO_PIN_SW_D_L (GPIOE->IDR) - #define PIN_SW_D_L GPIO_Pin_13 // PE.13 + #define SWITCHES_GPIO_REG_D_H (GPIOE->IDR) + #define SWITCHES_GPIO_PIN_D_H GPIO_Pin_7 // PE.07 + #define SWITCHES_GPIO_REG_D_L (GPIOE->IDR) + #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_13 // PE.13 #else - #define GPIO_PIN_SW_D_H GPIOE->IDR - #define PIN_SW_D_H GPIO_Pin_7 // PE.07 - #define GPIO_PIN_SW_D_L GPIOB->IDR - #define PIN_SW_D_L GPIO_Pin_1 // PB.01 + #define SWITCHES_GPIO_REG_D_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_D_H GPIO_Pin_7 // PE.07 + #define SWITCHES_GPIO_REG_D_L GPIOB->IDR + #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_1 // PB.01 #endif -#define GPIO_PIN_SW_E_L GPIOB->IDR -#define PIN_SW_E_L GPIO_Pin_3 // PB.03 -#define GPIO_PIN_SW_E_H GPIOB->IDR -#define PIN_SW_E_H GPIO_Pin_4 // PB.04 +#define SWITCHES_GPIO_REG_E_L GPIOB->IDR +#define SWITCHES_GPIO_PIN_E_L GPIO_Pin_3 // PB.03 +#define SWITCHES_GPIO_REG_E_H GPIOB->IDR +#define SWITCHES_GPIO_PIN_E_H GPIO_Pin_4 // PB.04 #if defined(REV9E) - #define GPIO_PIN_SW_F_L GPIOF->IDR - #define PIN_SW_F_L GPIO_Pin_15 // PF.15 - #define GPIO_PIN_SW_F_H GPIOE->IDR - #define PIN_SW_F_H GPIO_Pin_14 // PE.14 + #define SWITCHES_GPIO_REG_F_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_F_L GPIO_Pin_15 // PF.15 + #define SWITCHES_GPIO_REG_F_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_F_H GPIO_Pin_14 // PE.14 #else - #define GPIO_PIN_SW_F GPIOE->IDR - #define PIN_SW_F GPIO_Pin_14 // PE.14 + #define SWITCHES_GPIO_REG_F GPIOE->IDR + #define SWITCHES_GPIO_PIN_F GPIO_Pin_14 // PE.14 #endif -#define GPIO_PIN_SW_G_H GPIOE->IDR -#define PIN_SW_G_H GPIO_Pin_9 // PE.09 -#define GPIO_PIN_SW_G_L GPIOE->IDR -#define PIN_SW_G_L GPIO_Pin_8 // PE.08 +#define SWITCHES_GPIO_REG_G_H GPIOE->IDR +#define SWITCHES_GPIO_PIN_G_H GPIO_Pin_9 // PE.09 +#define SWITCHES_GPIO_REG_G_L GPIOE->IDR +#define SWITCHES_GPIO_PIN_G_L GPIO_Pin_8 // PE.08 #if defined(REV9E) - #define GPIO_PIN_SW_H_H GPIOD->IDR - #define PIN_SW_H_H GPIO_Pin_10 // PD.10 - #define GPIO_PIN_SW_H_L GPIOD->IDR - #define PIN_SW_H_L GPIO_Pin_14 // PD.14 + #define SWITCHES_GPIO_REG_H_H GPIOD->IDR + #define SWITCHES_GPIO_PIN_H_H GPIO_Pin_10 // PD.10 + #define SWITCHES_GPIO_REG_H_L GPIOD->IDR + #define SWITCHES_GPIO_PIN_H_L GPIO_Pin_14 // PD.14 #elif defined(REVPLUS) - #define GPIO_PIN_SW_H GPIOD->IDR - #define PIN_SW_H GPIO_Pin_14 // PD.14 + #define SWITCHES_GPIO_REG_H GPIOD->IDR + #define SWITCHES_GPIO_PIN_H GPIO_Pin_14 // PD.14 #else - #define GPIO_PIN_SW_H GPIOE->IDR - #define PIN_SW_H GPIO_Pin_13 // PE.13 + #define SWITCHES_GPIO_REG_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_H GPIO_Pin_13 // PE.13 #endif #if defined(REV9E) - #define GPIO_PIN_SW_I_H GPIOF->IDR - #define PIN_SW_I_H GPIO_Pin_1 // PF.01 - #define GPIO_PIN_SW_I_L GPIOF->IDR - #define PIN_SW_I_L GPIO_Pin_2 // PF.02 - #define GPIO_PIN_SW_J_H GPIOF->IDR - #define PIN_SW_J_H GPIO_Pin_3 // PF.03 - #define GPIO_PIN_SW_J_L GPIOF->IDR - #define PIN_SW_J_L GPIO_Pin_4 // PF.04 - #define GPIO_PIN_SW_K_H GPIOF->IDR - #define PIN_SW_K_H GPIO_Pin_5 // PF.05 - #define GPIO_PIN_SW_K_L GPIOF->IDR - #define PIN_SW_K_L GPIO_Pin_6 // PF.06 - #define GPIO_PIN_SW_L_H GPIOF->IDR - #define PIN_SW_L_H GPIO_Pin_7 // PF.07 - #define GPIO_PIN_SW_L_L GPIOE->IDR - #define PIN_SW_L_L GPIO_Pin_10 // PE.10 - #define GPIO_PIN_SW_M_H GPIOF->IDR - #define PIN_SW_M_H GPIO_Pin_11 // PF.11 - #define GPIO_PIN_SW_M_L GPIOF->IDR - #define PIN_SW_M_L GPIO_Pin_12 // PF.12 - #define GPIO_PIN_SW_N_H GPIOF->IDR - #define PIN_SW_N_H GPIO_Pin_13 // PF.13 - #define GPIO_PIN_SW_N_L GPIOF->IDR - #define PIN_SW_N_L GPIO_Pin_14 // PF.14 - #define GPIO_PIN_SW_O_H GPIOG->IDR - #define PIN_SW_O_H GPIO_Pin_13 // PG.13 - #define GPIO_PIN_SW_O_L GPIOG->IDR - #define PIN_SW_O_L GPIO_Pin_12 // PG.12 - #define GPIO_PIN_SW_P_H GPIOG->IDR - #define PIN_SW_P_H GPIO_Pin_11 // PG.11 - #define GPIO_PIN_SW_P_L GPIOG->IDR - #define PIN_SW_P_L GPIO_Pin_10 // PG.10 - #define GPIO_PIN_SW_Q_H GPIOE->IDR - #define PIN_SW_Q_H GPIO_Pin_11 // PE.11 - #define GPIO_PIN_SW_Q_L GPIOE->IDR - #define PIN_SW_Q_L GPIO_Pin_12 // PE.12 - #define GPIO_PIN_SW_R_H GPIOG->IDR - #define PIN_SW_R_H GPIO_Pin_7 // PG.07 - #define GPIO_PIN_SW_R_L GPIOG->IDR - #define PIN_SW_R_L GPIO_Pin_8 // PG.08 + #define SWITCHES_GPIO_REG_I_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_I_H GPIO_Pin_1 // PF.01 + #define SWITCHES_GPIO_REG_I_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_I_L GPIO_Pin_2 // PF.02 + #define SWITCHES_GPIO_REG_J_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_J_H GPIO_Pin_3 // PF.03 + #define SWITCHES_GPIO_REG_J_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_J_L GPIO_Pin_4 // PF.04 + #define SWITCHES_GPIO_REG_K_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_K_H GPIO_Pin_5 // PF.05 + #define SWITCHES_GPIO_REG_K_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_K_L GPIO_Pin_6 // PF.06 + #define SWITCHES_GPIO_REG_L_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_L_H GPIO_Pin_7 // PF.07 + #define SWITCHES_GPIO_REG_L_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_L_L GPIO_Pin_10 // PE.10 + #define SWITCHES_GPIO_REG_M_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_M_H GPIO_Pin_11 // PF.11 + #define SWITCHES_GPIO_REG_M_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_M_L GPIO_Pin_12 // PF.12 + #define SWITCHES_GPIO_REG_N_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_N_H GPIO_Pin_13 // PF.13 + #define SWITCHES_GPIO_REG_N_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_N_L GPIO_Pin_14 // PF.14 + #define SWITCHES_GPIO_REG_O_H GPIOG->IDR + #define SWITCHES_GPIO_PIN_O_H GPIO_Pin_13 // PG.13 + #define SWITCHES_GPIO_REG_O_L GPIOG->IDR + #define SWITCHES_GPIO_PIN_O_L GPIO_Pin_12 // PG.12 + #define SWITCHES_GPIO_REG_P_H GPIOG->IDR + #define SWITCHES_GPIO_PIN_P_H GPIO_Pin_11 // PG.11 + #define SWITCHES_GPIO_REG_P_L GPIOG->IDR + #define SWITCHES_GPIO_PIN_P_L GPIO_Pin_10 // PG.10 + #define SWITCHES_GPIO_REG_Q_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_Q_H GPIO_Pin_11 // PE.11 + #define SWITCHES_GPIO_REG_Q_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_Q_L GPIO_Pin_12 // PE.12 + #define SWITCHES_GPIO_REG_R_H GPIOG->IDR + #define SWITCHES_GPIO_PIN_R_H GPIO_Pin_7 // PG.07 + #define SWITCHES_GPIO_REG_R_L GPIOG->IDR + #define SWITCHES_GPIO_PIN_R_L GPIO_Pin_8 // PG.08 #endif // ADC -#define PIN_STK_J1 GPIO_Pin_0 // PA.00 -#define PIN_STK_J2 GPIO_Pin_1 // PA.01 -#define PIN_STK_J3 GPIO_Pin_2 // PA.02 -#define PIN_STK_J4 GPIO_Pin_3 // PA.03 -#define PIN_SLD_J1 GPIO_Pin_4 // PC.04 -#define PIN_SLD_J2 GPIO_Pin_5 // PC.05 -#define PIN_FLP_J1 GPIO_Pin_6 // PA.06 -#define PIN_FLP_J2 GPIO_Pin_0 // PB.00 #if defined(REV9E) - #define PIN_FLP_J3 GPIO_Pin_10 // PF.10 - #define PIN_FLP_J4 GPIO_Pin_9 // PF.09 - #define PIN_FLP_J5 GPIO_Pin_8 // PF.08 - #define PIN_FLP_J6 GPIO_Pin_1 // PB.01 -#elif defined(REVPLUS) - #define PIN_FLP_J3 GPIO_Pin_1 // PB.01 + #define ADC_AHB1Periph_GPIO (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOF) +#else + #define ADC_AHB1Periph_GPIO (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC) #endif -#define PIN_MVOLT GPIO_Pin_0 // PC.00 -#define RCC_AHB1Periph_GPIOADC RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC +#define ADC_GPIO_PIN_STICK_RV GPIO_Pin_0 // PA.00 +#define ADC_GPIO_PIN_STICK_RH GPIO_Pin_1 // PA.01 +#define ADC_GPIO_PIN_STICK_LH GPIO_Pin_2 // PA.02 +#define ADC_GPIO_PIN_STICK_LV GPIO_Pin_3 // PA.03 +#define ADC_GPIO_PIN_SLIDER1 GPIO_Pin_4 // PC.04 +#define ADC_GPIO_PIN_SLIDER2 GPIO_Pin_5 // PC.05 +#define ADC_GPIO_PIN_POT1 GPIO_Pin_6 // PA.06 +#define ADC_GPIO_PIN_POT2 GPIO_Pin_0 // PB.00 +#if defined(REV9E) + #define ADC_GPIO_PIN_POT3 GPIO_Pin_10 // PF.10 + #define ADC_GPIO_PIN_POT4 GPIO_Pin_9 // PF.09 + #define ADC_GPIO_PIN_POT5 GPIO_Pin_8 // PF.08 + #define ADC_GPIO_PIN_POT6 GPIO_Pin_1 // PB.01 +#elif defined(REVPLUS) + #define ADC_GPIO_PIN_POT3 GPIO_Pin_1 // PB.01 +#endif +#define ADC_GPIO_PIN_BATT GPIO_Pin_0 // PC.00 // Power_OFF Delay and LED -#define PIN_PWR_LED GPIO_Pin_6 // PC.06 -#define PIN_PWR_STATUS GPIO_Pin_1 // PD.01 -#define PIN_MCU_PWR GPIO_Pin_0 // PD.00 -#define RCC_AHB1Periph_GPIOPWR RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD -#define GPIOPWRLED GPIOC -#define GPIOPWR GPIOD -#define GPIO_EXT_RF_PWR GPIOD -#define PIN_EXT_RF_PWR GPIO_Pin_8 +#define PWR_RCC_AHB1Periph_GPIO (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD) +#define PWR_GPIO GPIOD +#define PWR_GPIO_PIN_SWITCH GPIO_Pin_1 // PD.01 +#define PWR_GPIO_PIN_ON GPIO_Pin_0 // PD.00 +#define PWR_GPIO_LED GPIOC +#define PWR_GPIO_PIN_LED GPIO_Pin_6 // PC.06 + +// Internal Module +#define INTMODULE_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOA #if defined(REVPLUS) - #define GPIO_INT_RF_PWR GPIOC - #define PIN_INT_RF_PWR GPIO_Pin_6 + #define INTMODULE_GPIO_PWR GPIOC + #define INTMODULE_GPIO_PIN_PWR GPIO_Pin_6 #else - #define GPIO_INT_RF_PWR GPIOD - #define PIN_INT_RF_PWR GPIO_Pin_15 + #define INTMODULE_GPIO_PWR GPIOD + #define INTMODULE_GPIO_PIN_PWR GPIO_Pin_15 #endif +#define INTMODULE_GPIO_PIN GPIO_Pin_10 // PA.10 +#define INTMODULE_GPIO GPIOA +#define INTMODULE_GPIO_PinSource GPIO_PinSource10 + +// External Module +#define EXTMODULE_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOA +#define EXTMODULE_GPIO_PWR GPIOD +#define EXTMODULE_GPIO_PIN_PWR GPIO_Pin_8 +#define EXTMODULE_GPIO_PIN GPIO_Pin_7 // PA.07 +#define EXTMODULE_GPIO GPIOA +#define EXTMODULE_GPIO_PinSource GPIO_PinSource7 // Trainer Port -#define GPIO_TR_INOUT GPIOC -#define PIN_TR_PPM_IN GPIO_Pin_8 // PC.08 -#define PIN_TR_PPM_OUT GPIO_Pin_9 // PC.09 -#define GPIOTRNDET GPIOA -#define PIN_TRNDET GPIO_Pin_8 +#define TRAINER_GPIO GPIOC +#define TRAINER_GPIO_PIN_IN GPIO_Pin_8 // PC.08 +#define TRAINER_GPIO_PIN_OUT GPIO_Pin_9 // PC.09 +#define TRAINER_GPIO_DETECT GPIOA +#define TRAINER_GPIO_PIN_DETECT GPIO_Pin_8 // PA.08 -// Cppm -#define RCC_AHB1Periph_GPIO_INTPPM RCC_AHB1Periph_GPIOA -#define PIN_INTPPM_OUT GPIO_Pin_10 // PA.10 -#define GPIO_INTPPM GPIOA -#define GPIO_PinSource_INTPPM GPIO_PinSource10 -#define RCC_AHB1Periph_GPIO_EXTPPM RCC_AHB1Periph_GPIOA -#define PIN_EXTPPM_OUT GPIO_Pin_7 // PA.07 -#define GPIO_EXTPPM GPIOA -#define GPIO_PinSource_EXTPPM GPIO_PinSource7 +// SERIAL_USART +#define SERIAL_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOB +#define SERIAL_RCC_APB1Periph_USART RCC_APB1Periph_USART3 +#define SERIAL_GPIO GPIOB +#define SERIAL_GPIO_PIN_TX GPIO_Pin_10 // PB.10 +#define SERIAL_GPIO_PIN_RX GPIO_Pin_11 // PB.11 +#define SERIAL_GPIO_PinSource_TX GPIO_PinSource10 +#define SERIAL_GPIO_PinSource_RX GPIO_PinSource11 +#define SERIAL_GPIO_AF GPIO_AF_USART3 +#define SERIAL_USART USART3 -// Heart Beat -#define PIN_HEART_BEAT GPIO_Pin_7 // PC.07 +// Telemetry +#define TELEMETRY_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOD +#define TELEMETRY_RCC_APB1Periph_USART RCC_APB1Periph_USART2 +#define TELEMETRY_GPIO_DIR GPIOA +#define TELEMETRY_GPIO_PIN_DIR GPIO_Pin_15 // PA.15 +#define TELEMETRY_GPIO GPIOD +#define TELEMETRY_GPIO_PIN_TX GPIO_Pin_5 // PD.05 +#define TELEMETRY_GPIO_PIN_RX GPIO_Pin_6 // PD.06 +#define TELEMETRY_GPIO_PinSource_TX GPIO_PinSource5 +#define TELEMETRY_GPIO_PinSource_RX GPIO_PinSource6 +#define TELEMETRY_GPIO_AF GPIO_AF_USART2 +#define TELEMETRY_USART USART2 +#define TELEMETRY_USART_IRQHandler USART2_IRQHandler +#define TELEMETRY_USART_IRQn USART2_IRQn -// UART3 -#define RCC_AHB1Periph_GPIO_UART3 RCC_AHB1Periph_GPIOB -#define RCC_APB1Periph_UART3 RCC_APB1Periph_USART3 -#define GPIO_UART3 GPIOB -#define GPIO_PIN_UART3_TX GPIO_Pin_10 // PB.10 -#define GPIO_PIN_UART3_RX GPIO_Pin_11 // PB.11 -#define GPIO_PinSource_UART3_TX GPIO_PinSource10 -#define GPIO_PinSource_UART3_RX GPIO_PinSource11 -#define GPIO_AF_UART3 GPIO_AF_USART3 -#define UART3 USART3 - -// Smart-Port -#define RCC_AHB1Periph_GPIO_SPORT RCC_AHB1Periph_GPIOD -#define RCC_APB1Periph_SPORT RCC_APB1Periph_USART2 -#define GPIO_PIN_SPORT_ON GPIOD -#define PIN_SPORT_ON GPIO_Pin_4 // PD.04 -#define GPIO_PIN_SPORT_TXRX GPIOD -#define PIN_SPORT_TX GPIO_Pin_5 // PD.05 -#define PIN_SPORT_RX GPIO_Pin_6 // PD.06 -#define GPIO_PinSource_SPORT_TX GPIO_PinSource5 -#define GPIO_PinSource_SPORT_RX GPIO_PinSource6 -#define GPIO_AF_SPORT GPIO_AF_USART2 -#define SPORT_USART USART2 -#define SPORT_IRQHandler USART2_IRQHandler -#define SPORT_IRQn USART2_IRQn - -// USB_OTG -#define PIN_FS_VBUS GPIO_Pin_9 // PA.09 -#define PIN_FS_DM GPIO_Pin_11 // PA.11 -#define PIN_FS_DP GPIO_Pin_12 // PA.12 +// USB +#define USB_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOA +#define USB_GPIO GPIOA +#define USB_GPIO_PIN_VBUS GPIO_Pin_9 // PA.09 +#define USB_GPIO_PIN_DM GPIO_Pin_11 // PA.11 +#define USB_GPIO_PIN_DP GPIO_Pin_12 // PA.12 +#define USB_GPIO_PinSource_DM GPIO_PinSource11 +#define USB_GPIO_PinSource_DP GPIO_PinSource12 +#define USB_GPIO_AF GPIO_AF_OTG1_FS // BackLight #if defined(REV9E) - #define TIM_BL TIM9 - #define GPIOBL GPIOE - #define RCC_AHB1Periph_GPIOBL RCC_AHB1Periph_GPIOE - #define Pin_BL_AF GPIO_AF_TIM9 - #define GPIO_Pin_BL GPIO_Pin_6 // PE.06 - #define GPIO_PinSource_BL GPIO_PinSource6 - #define Pin_BLW_AF GPIO_AF_TIM9 - #define GPIO_Pin_BLW GPIO_Pin_5 // PE.05 - #define GPIO_PinSource_BLW GPIO_PinSource5 + #define BACKLIGHT_TIMER TIM9 + #define BACKLIGHT_GPIO GPIOE + #define BACKLIGHT_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOE + #define BACKLIGHT_GPIO_PIN_1 GPIO_Pin_6 // PE.06 + #define BACKLIGHT_GPIO_PIN_2 GPIO_Pin_5 // PE.05 + #define BACKLIGHT_GPIO_PinSource_1 GPIO_PinSource6 + #define BACKLIGHT_GPIO_PinSource_2 GPIO_PinSource5 + #define BACKLIGHT_GPIO_AF_1 GPIO_AF_TIM9 + #define BACKLIGHT_GPIO_AF_2 GPIO_AF_TIM9 #elif defined (REVPLUS) - #define TIM_BL TIM4 - #define GPIOBL GPIOD - #define RCC_AHB1Periph_GPIOBL RCC_AHB1Periph_GPIOD - #define Pin_BL_AF GPIO_AF_TIM4 - #define GPIO_Pin_BL GPIO_Pin_15 // PD.15 - #define GPIO_PinSource_BL GPIO_PinSource15 - #define Pin_BLW_AF GPIO_AF_TIM4 - #define GPIO_Pin_BLW GPIO_Pin_13 // PD.13 - #define GPIO_PinSource_BLW GPIO_PinSource13 + #define BACKLIGHT_TIMER TIM4 + #define BACKLIGHT_GPIO GPIOD + #define BACKLIGHT_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOD + #define BACKLIGHT_GPIO_AF_1 GPIO_AF_TIM4 + #define BACKLIGHT_GPIO_PIN_1 GPIO_Pin_15 // PD.15 + #define BACKLIGHT_GPIO_PinSource_1 GPIO_PinSource15 + #define BACKLIGHT_GPIO_AF_2 GPIO_AF_TIM4 + #define BACKLIGHT_GPIO_PIN_2 GPIO_Pin_13 // PD.13 + #define BACKLIGHT_GPIO_PinSource_2 GPIO_PinSource13 #else - #define RCC_AHB1Periph_GPIOBL RCC_AHB1Periph_GPIOB - #define GPIO_Pin_BL GPIO_Pin_8 // PB.08 - #define Pin_BL_AF GPIO_AF_TIM10 - #define GPIOBL GPIOB - #define GPIO_PinSource_BL GPIO_PinSource8 + #define BACKLIGHT_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOB + #define BACKLIGHT_GPIO_PIN_1 GPIO_Pin_8 // PB.08 + #define BACKLIGHT_GPIO_AF_1 GPIO_AF_TIM10 + #define BACKLIGHT_GPIO GPIOB + #define BACKLIGHT_GPIO_PinSource_1 GPIO_PinSource8 #endif // LCD #if defined(REV9E) - #define RCC_AHB1Periph_LCD (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD) - #define RCC_AHB1Periph_LCD_RST RCC_AHB1Periph_GPIOD - #define RCC_AHB1Periph_LCD_NCS RCC_AHB1Periph_GPIOA - #define GPIO_LCD_SPI GPIOC - #define GPIO_LCD_NCS GPIOA - #define GPIO_LCD_RST GPIOD - #define PIN_LCD_MOSI GPIO_Pin_12 // PC.12 - #define PIN_LCD_CLK GPIO_Pin_10 // PC.10 - #define PIN_LCD_NCS GPIO_Pin_15 // PA.15 - #define PIN_LCD_A0 GPIO_Pin_11 // PC.11 - #define PIN_LCD_RST GPIO_Pin_15 // PD.15 + #define LCD_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD) + #define LCD_RCC_AHB1Periph_RST RCC_AHB1Periph_GPIOD + #define LCD_RCC_AHB1Periph_NCS RCC_AHB1Periph_GPIOA + #define LCD_GPIO_SPI GPIOC + #define LCD_GPIO_NCS GPIOA + #define LCD_GPIO_RST GPIOD + #define LCD_GPIO_PIN_MOSI GPIO_Pin_12 // PC.12 + #define LCD_GPIO_PIN_CLK GPIO_Pin_10 // PC.10 + #define LCD_GPIO_PIN_NCS GPIO_Pin_15 // PA.15 + #define LCD_GPIO_PIN_A0 GPIO_Pin_11 // PC.11 + #define LCD_GPIO_PIN_RST GPIO_Pin_15 // PD.15 #elif defined(REVPLUS) - #define RCC_AHB1Periph_LCD (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD) - #define RCC_AHB1Periph_LCD_RST RCC_AHB1Periph_GPIOD - #define RCC_AHB1Periph_LCD_NCS RCC_AHB1Periph_GPIOA - #define GPIO_LCD_SPI GPIOC - #define GPIO_LCD_NCS GPIOA - #define GPIO_LCD_RST GPIOD - #define PIN_LCD_MOSI GPIO_Pin_12 // PC.12 - #define PIN_LCD_CLK GPIO_Pin_10 // PC.10 - #define PIN_LCD_NCS GPIO_Pin_15 // PA.15 - #define PIN_LCD_A0 GPIO_Pin_11 // PC.11 - #define PIN_LCD_RST GPIO_Pin_12 // PD.12 + #define LCD_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD) + #define LCD_RCC_AHB1Periph_RST RCC_AHB1Periph_GPIOD + #define LCD_RCC_AHB1Periph_NCS RCC_AHB1Periph_GPIOA + #define LCD_GPIO_SPI GPIOC + #define LCD_GPIO_NCS GPIOA + #define LCD_GPIO_RST GPIOD + #define LCD_GPIO_PIN_MOSI GPIO_Pin_12 // PC.12 + #define LCD_GPIO_PIN_CLK GPIO_Pin_10 // PC.10 + #define LCD_GPIO_PIN_NCS GPIO_Pin_15 // PA.15 + #define LCD_GPIO_PIN_A0 GPIO_Pin_11 // PC.11 + #define LCD_GPIO_PIN_RST GPIO_Pin_12 // PD.12 #else - #define RCC_AHB1Periph_LCD RCC_AHB1Periph_GPIOD - #define GPIO_LCD_SPI GPIOD - #define GPIO_LCD_NCS GPIOD - #define GPIO_LCD_RST GPIOD - #define PIN_LCD_MOSI GPIO_Pin_10 // PD.10 - #define PIN_LCD_CLK GPIO_Pin_11 // PD.11 - #define PIN_LCD_NCS GPIO_Pin_14 // PD.14 - #define PIN_LCD_A0 GPIO_Pin_13 // PD.13 - #define PIN_LCD_RST GPIO_Pin_12 // PD.12 + #define LCD_RCC_AHB1Periph RCC_AHB1Periph_GPIOD + #define LCD_GPIO_SPI GPIOD + #define LCD_GPIO_NCS GPIOD + #define LCD_GPIO_RST GPIOD + #define LCD_GPIO_PIN_MOSI GPIO_Pin_10 // PD.10 + #define LCD_GPIO_PIN_CLK GPIO_Pin_11 // PD.11 + #define LCD_GPIO_PIN_NCS GPIO_Pin_14 // PD.14 + #define LCD_GPIO_PIN_A0 GPIO_Pin_13 // PD.13 + #define LCD_GPIO_PIN_RST GPIO_Pin_12 // PD.12 #endif // I2C Bus: EEPROM and CAT5137 @@ -363,35 +370,25 @@ // Haptic #if defined(REVPLUS) - #define RCC_AHB1Periph_GPIOHAPTIC RCC_AHB1Periph_GPIOB - #define GPIO_PinSource_HAPTIC GPIO_PinSource8 - #define GPIO_HAPTIC GPIOB - #define PIN_HAPTIC GPIO_Pin_8 + #define HAPTIC_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOB + #define HAPTIC_GPIO_PinSource GPIO_PinSource8 + #define HAPTIC_GPIO GPIOB + #define HAPTIC_GPIO_PIN GPIO_Pin_8 #else - #define RCC_AHB1Periph_GPIOHAPTIC RCC_AHB1Periph_GPIOC - #define GPIO_HAPTIC GPIOC - #define PIN_HAPTIC GPIO_Pin_12 + #define HAPTIC_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOC + #define HAPTIC_GPIO GPIOC + #define HAPTIC_GPIO_PIN GPIO_Pin_12 #endif // Top LCD on X9E #if defined(REV9E) - #define GPIO_VA GPIOG - #define PIN_VA_DATA GPIO_Pin_5 - #define PIN_VA_WR GPIO_Pin_4 - #define PIN_VA_CS GPIO_Pin_3 - #define PIN_VA_CS2 GPIO_Pin_15 - #define PIN_VA_BL GPIO_Pin_2 - #define RCC_AHB1Periph_VA RCC_AHB1Periph_GPIOG - #define CS1_HIGH GPIO_VA->BSRRL = PIN_VA_CS - #define CS1_LOW GPIO_VA->BSRRH = PIN_VA_CS - #define CS2_HIGH GPIO_VA->BSRRL = PIN_VA_CS2 - #define CS2_LOW GPIO_VA->BSRRH = PIN_VA_CS2 - #define WR_HIGH GPIO_VA->BSRRL = PIN_VA_WR - #define WR_LOW GPIO_VA->BSRRH = PIN_VA_WR - #define DATA_HIGH GPIO_VA->BSRRL = PIN_VA_DATA - #define DATA_LOW GPIO_VA->BSRRH = PIN_VA_DATA - #define VA_BL_ON GPIO_VA->BSRRL = PIN_VA_BL - #define VA_BL_OFF GPIO_VA->BSRRH = PIN_VA_BL + #define TOPLCD_GPIO GPIOG + #define TOPLCD_GPIO_PIN_DATA GPIO_Pin_5 + #define TOPLCD_GPIO_PIN_WR GPIO_Pin_4 + #define TOPLCD_GPIO_PIN_CS1 GPIO_Pin_3 + #define TOPLCD_GPIO_PIN_CS2 GPIO_Pin_15 + #define TOPLCD_GPIO_PIN_BL GPIO_Pin_2 + #define TOPLCD_RCC_AHB1Periph_GPIO RCC_AHB1Periph_GPIOG #endif #endif diff --git a/radio/src/targets/taranis/haptic_driver.cpp b/radio/src/targets/taranis/haptic_driver.cpp index 062833fbd..f71008cc9 100644 --- a/radio/src/targets/taranis/haptic_driver.cpp +++ b/radio/src/targets/taranis/haptic_driver.cpp @@ -52,16 +52,16 @@ void hapticOn(uint32_t pwmPercent) void hapticInit(void) { - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOHAPTIC, ENABLE); + RCC_AHB1PeriphClockCmd(HAPTIC_RCC_AHB1Periph_GPIO, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; - GPIO_InitStructure.GPIO_Pin = PIN_HAPTIC; + GPIO_InitStructure.GPIO_Pin = HAPTIC_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_HAPTIC, &GPIO_InitStructure); + GPIO_Init(HAPTIC_GPIO, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIO_HAPTIC, GPIO_PinSource_HAPTIC, GPIO_AF_TIM10); + GPIO_PinAFConfig(HAPTIC_GPIO, HAPTIC_GPIO_PinSource, GPIO_AF_TIM10); RCC->APB2ENR |= RCC_APB2ENR_TIM10EN ; // Enable clock TIM10->ARR = 100 ; @@ -80,25 +80,25 @@ void hapticInit(void) void hapticInit(void) { GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOHAPTIC, ENABLE); + RCC_AHB1PeriphClockCmd(HAPTIC_RCC_AHB1Periph_GPIO, ENABLE); /* GPIO Configuration*/ - GPIO_InitStructure.GPIO_Pin = PIN_HAPTIC; + GPIO_InitStructure.GPIO_Pin = HAPTIC_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_HAPTIC, &GPIO_InitStructure); + GPIO_Init(HAPTIC_GPIO, &GPIO_InitStructure); } void hapticOff(void) { - GPIO_ResetBits(GPIO_HAPTIC, PIN_HAPTIC); + GPIO_ResetBits(HAPTIC_GPIO, HAPTIC_GPIO_PIN); } void hapticOn() { - GPIO_SetBits(GPIO_HAPTIC, PIN_HAPTIC); + GPIO_SetBits(HAPTIC_GPIO, HAPTIC_GPIO_PIN); } #endif diff --git a/radio/src/targets/taranis/i2c_driver.cpp b/radio/src/targets/taranis/i2c_driver.cpp index aa02afd73..4d0bd29a9 100644 --- a/radio/src/targets/taranis/i2c_driver.cpp +++ b/radio/src/targets/taranis/i2c_driver.cpp @@ -2,8 +2,6 @@ void I2C_EE_PageWrite(uint8_t* pBuffer, uint16_t WriteAddr, uint8_t NumByteToWrite); void I2C_EE_WaitEepromStandbyState(void); -void I2C_set_volume(register uint8_t volume); -uint8_t I2C_read_volume(void); void eepromInit(void) { diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index e5207c446..460260672 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -40,36 +40,33 @@ uint32_t readKeys() { - register uint32_t d = GPIOD->IDR; - register uint32_t e = GPIOE->IDR; - register uint32_t f = GPIOF->IDR; register uint32_t result = 0; + register uint32_t d = ~GPIOD->IDR; +#if !defined(REV9E) || defined(SIMU) + register uint32_t e = ~GPIOE->IDR; (void)e; - (void)f; +#endif #if defined(REV9E) - if (f & PIN_BUTTON_ENTER) + if (!(GPIOF->IDR & KEYS_GPIO_PIN_ENTER)) #else - if (e & PIN_BUTTON_ENTER) + if (e & KEYS_GPIO_PIN_ENTER) #endif result |= 0x02 << KEY_ENTER; #if !defined(REV9E) || defined(SIMU) - if (e & PIN_BUTTON_PLUS) + if (e & KEYS_GPIO_PIN_PLUS) result |= 0x02 << KEY_PLUS; - if (e & PIN_BUTTON_MINUS) + if (e & KEYS_GPIO_PIN_MINUS) result |= 0x02 << KEY_MINUS; -#else - result |= 0x02 << KEY_PLUS; - result |= 0x02 << KEY_MINUS; #endif - if (d & PIN_BUTTON_MENU) + if (d & KEYS_GPIO_PIN_MENU) result |= 0x02 << KEY_MENU; - if (d & PIN_BUTTON_PAGE) + if (d & KEYS_GPIO_PIN_PAGE) result |= 0x02 << KEY_PAGE; - if (d & PIN_BUTTON_EXIT) + if (d & KEYS_GPIO_PIN_EXIT) result |= 0x02 << KEY_EXIT; // TRACE("readKeys(): %x %x => %x", d, e, result); @@ -86,30 +83,30 @@ uint32_t readTrims() #endif register uint32_t result = 0; - if (~e & PIN_TRIM_LH_L) + if (~e & TRIMS_GPIO_PIN_LHL) result |= 0x01; // LH_L - if (~e & PIN_TRIM_LH_R) + if (~e & TRIMS_GPIO_PIN_LHR) result |= 0x02; // LH_R #if defined(REV9E) - if (~g & PIN_TRIM_LV_DN) + if (~g & TRIMS_GPIO_PIN_LVD) result |= 0x04; // LV_DN - if (~g & PIN_TRIM_LV_UP) + if (~g & TRIMS_GPIO_PIN_LVU) result |= 0x08; // LV_UP #else - if (~e & PIN_TRIM_LV_DN) + if (~e & TRIMS_GPIO_PIN_LVD) result |= 0x04; // LV_DN - if (~e & PIN_TRIM_LV_UP) + if (~e & TRIMS_GPIO_PIN_LVU) result |= 0x08; // LV_UP #endif - if (~c & PIN_TRIM_RV_DN) + if (~c & TRIMS_GPIO_PIN_RVD) result |= 0x10; // RV_DN - if (~c & PIN_TRIM_RV_UP) + if (~c & TRIMS_GPIO_PIN_RVU) result |= 0x20; // RV_UP - if (~c & PIN_TRIM_RH_L) + if (~c & TRIMS_GPIO_PIN_RHL) result |= 0x40; // RH_L - if (~c & PIN_TRIM_RH_R) + if (~c & TRIMS_GPIO_PIN_RHR) result |= 0x80; // RH_R // TRACE("readTrims(): %x %x => %x", c, e, result); @@ -124,7 +121,7 @@ uint8_t trimDown(uint8_t idx) uint8_t keyDown() { - return ~readKeys() & 0x7E ; + return readKeys(); } #if defined(REV9E) @@ -137,7 +134,7 @@ void readKeysAndTrims() register uint32_t i; uint8_t enuk = KEY_MENU; - uint32_t in = ~readKeys(); + uint32_t in = readKeys(); for (i = 1; i <= TRM_BASE; i++) { keys[enuk].input(in & (1 << i)); ++enuk; @@ -171,53 +168,53 @@ void readKeysAndTrims() #if defined(REV9E) #define ADD_3POS_CASE(x, i) \ case SW_S ## x ## 0: \ - xxx = (GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H) && (~GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (~SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break; \ case SW_S ## x ## 1: \ - xxx = (GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H) && (GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break; \ case SW_S ## x ## 2: \ - xxx = (~GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H) && (GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = (~SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break #define ADD_3POS_INVERTED_CASE(x, i) ADD_3POS_CASE(x, i) #else #define ADD_2POS_CASE(x) \ case SW_S ## x ## 0: \ - xxx = GPIO_PIN_SW_ ## x & PIN_SW_ ## x ; \ + xxx = SWITCHES_GPIO_REG_ ## x & SWITCHES_GPIO_PIN_ ## x ; \ break; \ case SW_S ## x ## 2: \ - xxx = ~GPIO_PIN_SW_ ## x & PIN_SW_ ## x ; \ + xxx = ~SWITCHES_GPIO_REG_ ## x & SWITCHES_GPIO_PIN_ ## x ; \ break #define ADD_3POS_CASE(x, i) \ case SW_S ## x ## 0: \ - xxx = (GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H); \ + xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H); \ if (IS_3POS(i)) { \ - xxx = xxx && (~GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = xxx && (~SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ } \ break; \ case SW_S ## x ## 1: \ - xxx = (GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H) && (GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break; \ case SW_S ## x ## 2: \ - xxx = (~GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H); \ + xxx = (~SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H); \ if (IS_3POS(i)) { \ - xxx = xxx && (GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = xxx && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ } \ break #define ADD_3POS_INVERTED_CASE(x, i) \ case SW_S ## x ## 0: \ - xxx = (~GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H); \ + xxx = (~SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H); \ if (IS_3POS(i)) { \ - xxx = xxx && (GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = xxx && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ } \ break; \ case SW_S ## x ## 1: \ - xxx = (GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H) && (GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break; \ case SW_S ## x ## 2: \ - xxx = (GPIO_PIN_SW_ ## x ## _H & PIN_SW_ ## x ## _H); \ + xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H); \ if (IS_3POS(i)) { \ - xxx = xxx && (~GPIO_PIN_SW_ ## x ## _L & PIN_SW_ ## x ## _L); \ + xxx = xxx && (~SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ } \ break #endif @@ -273,19 +270,19 @@ void keysInit() { GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOBUTTON, ENABLE); + RCC_AHB1PeriphClockCmd(KEYS_RCC_AHB1Periph_GPIO, ENABLE); #if defined(REV9E) - GPIO_InitStructure.GPIO_Pin = PIN_TRIM_LH_R | PIN_TRIM_LH_L - | PIN_SW_F_H | PIN_SW_A_L | PIN_SW_B_H | PIN_SW_B_L | PIN_SW_C_H | PIN_SW_D_H | PIN_SW_D_L | PIN_SW_G_H | PIN_SW_G_L | PIN_SW_L_L | PIN_SW_Q_H | PIN_SW_Q_L; + GPIO_InitStructure.GPIO_Pin = TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_LHL + | SWITCHES_GPIO_PIN_F_H | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_B_L | SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_D_H | SWITCHES_GPIO_PIN_D_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L | SWITCHES_GPIO_PIN_L_L | SWITCHES_GPIO_PIN_Q_H | SWITCHES_GPIO_PIN_Q_L; #elif defined(REVPLUS) - GPIO_InitStructure.GPIO_Pin = PIN_BUTTON_PLUS | PIN_BUTTON_ENTER | PIN_BUTTON_MINUS | PIN_TRIM_LH_R | PIN_TRIM_LH_L - | PIN_TRIM_LV_DN | PIN_TRIM_LV_UP - | PIN_SW_F | PIN_SW_A_L | PIN_SW_B_H | PIN_SW_B_L | PIN_SW_C_H | PIN_SW_D_H | PIN_SW_D_L | PIN_SW_G_H | PIN_SW_G_L; + GPIO_InitStructure.GPIO_Pin = KEYS_GPIO_PIN_PLUS | KEYS_GPIO_PIN_ENTER | KEYS_GPIO_PIN_MINUS | TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_LHL + | TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU + | SWITCHES_GPIO_PIN_F | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_B_L | SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_D_H | SWITCHES_GPIO_PIN_D_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L; #else - GPIO_InitStructure.GPIO_Pin = PIN_BUTTON_PLUS | PIN_BUTTON_ENTER | PIN_BUTTON_MINUS | PIN_TRIM_LH_R | PIN_TRIM_LH_L - | PIN_TRIM_LV_DN | PIN_TRIM_LV_UP - | PIN_SW_F | PIN_SW_A_L | PIN_SW_B_H | PIN_SW_B_L | PIN_SW_C_H | PIN_SW_D_H | PIN_SW_G_H | PIN_SW_G_L | PIN_SW_H; + GPIO_InitStructure.GPIO_Pin = KEYS_GPIO_PIN_PLUS | KEYS_GPIO_PIN_ENTER | KEYS_GPIO_PIN_MINUS | TRIMS_GPIO_PIN_LHR | TRIMS_GPIO_PIN_LHL + | TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU + | SWITCHES_GPIO_PIN_F | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_B_L | SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_D_H | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L | SWITCHES_GPIO_PIN_H; #endif GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; @@ -294,33 +291,33 @@ void keysInit() GPIO_Init(GPIOE, &GPIO_InitStructure); #if defined(REV9E) - GPIO_InitStructure.GPIO_Pin = PIN_BUTTON_ENTER | PIN_SW_F_L | PIN_SW_I_H | PIN_SW_I_L | PIN_SW_J_H | PIN_SW_J_L | PIN_SW_K_H | PIN_SW_K_L | PIN_SW_L_H | PIN_SW_M_H | PIN_SW_M_L | PIN_SW_N_H | PIN_SW_N_L; + GPIO_InitStructure.GPIO_Pin = KEYS_GPIO_PIN_ENTER | SWITCHES_GPIO_PIN_F_L | SWITCHES_GPIO_PIN_I_H | SWITCHES_GPIO_PIN_I_L | SWITCHES_GPIO_PIN_J_H | SWITCHES_GPIO_PIN_J_L | SWITCHES_GPIO_PIN_K_H | SWITCHES_GPIO_PIN_K_L | SWITCHES_GPIO_PIN_L_H | SWITCHES_GPIO_PIN_M_H | SWITCHES_GPIO_PIN_M_L | SWITCHES_GPIO_PIN_N_H | SWITCHES_GPIO_PIN_N_L; GPIO_Init(GPIOF, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_TRIM_LV_DN | PIN_TRIM_LV_UP | PIN_SW_O_H | PIN_SW_O_L | PIN_SW_P_H | PIN_SW_P_L | PIN_SW_R_H | PIN_SW_R_L; + GPIO_InitStructure.GPIO_Pin = TRIMS_GPIO_PIN_LVD | TRIMS_GPIO_PIN_LVU | SWITCHES_GPIO_PIN_O_H | SWITCHES_GPIO_PIN_O_L | SWITCHES_GPIO_PIN_P_H | SWITCHES_GPIO_PIN_P_L | SWITCHES_GPIO_PIN_R_H | SWITCHES_GPIO_PIN_R_L; GPIO_Init(GPIOG, &GPIO_InitStructure); #endif #if defined(REV9E) - GPIO_InitStructure.GPIO_Pin = PIN_BUTTON_MENU | PIN_BUTTON_EXIT | PIN_BUTTON_PAGE | PIN_SW_H_H | PIN_SW_H_L; + GPIO_InitStructure.GPIO_Pin = KEYS_GPIO_PIN_MENU | KEYS_GPIO_PIN_EXIT | KEYS_GPIO_PIN_PAGE | SWITCHES_GPIO_PIN_H_H | SWITCHES_GPIO_PIN_H_L; #elif defined(REVPLUS) - GPIO_InitStructure.GPIO_Pin = PIN_BUTTON_MENU | PIN_BUTTON_EXIT | PIN_BUTTON_PAGE | PIN_SW_H; + GPIO_InitStructure.GPIO_Pin = KEYS_GPIO_PIN_MENU | KEYS_GPIO_PIN_EXIT | KEYS_GPIO_PIN_PAGE | SWITCHES_GPIO_PIN_H; #else - GPIO_InitStructure.GPIO_Pin = PIN_BUTTON_MENU | PIN_BUTTON_EXIT | PIN_BUTTON_PAGE; + GPIO_InitStructure.GPIO_Pin = KEYS_GPIO_PIN_MENU | KEYS_GPIO_PIN_EXIT | KEYS_GPIO_PIN_PAGE; #endif GPIO_Init(GPIOD, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_TRIM_RV_DN | PIN_TRIM_RV_UP | PIN_TRIM_RH_L | PIN_TRIM_RH_R; + GPIO_InitStructure.GPIO_Pin = TRIMS_GPIO_PIN_RVD | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_RHL | TRIMS_GPIO_PIN_RHR; GPIO_Init(GPIOC, &GPIO_InitStructure); #if defined(REVPLUS) - GPIO_InitStructure.GPIO_Pin = PIN_SW_E_L | PIN_SW_E_H | PIN_SW_A_H; + GPIO_InitStructure.GPIO_Pin = SWITCHES_GPIO_PIN_E_L | SWITCHES_GPIO_PIN_E_H | SWITCHES_GPIO_PIN_A_H; #else - GPIO_InitStructure.GPIO_Pin = PIN_SW_E_L | PIN_SW_E_H | PIN_SW_A_H | PIN_SW_D_L; + GPIO_InitStructure.GPIO_Pin = SWITCHES_GPIO_PIN_E_L | SWITCHES_GPIO_PIN_E_H | SWITCHES_GPIO_PIN_A_H | SWITCHES_GPIO_PIN_D_L; #endif GPIO_Init(GPIOB, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_SW_C_L; + GPIO_InitStructure.GPIO_Pin = SWITCHES_GPIO_PIN_C_L; GPIO_Init(GPIOA, &GPIO_InitStructure); } #endif diff --git a/radio/src/targets/taranis/lcd_driver.cpp b/radio/src/targets/taranis/lcd_driver.cpp index 883f19c89..3d7c3607c 100644 --- a/radio/src/targets/taranis/lcd_driver.cpp +++ b/radio/src/targets/taranis/lcd_driver.cpp @@ -42,9 +42,9 @@ static void Delay(uint32_t ms) // New hardware SPI driver for LCD void initLcdSpi() { - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_LCD, ENABLE); - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_LCD_RST, ENABLE); - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_LCD_NCS, ENABLE); + RCC_AHB1PeriphClockCmd(LCD_RCC_AHB1Periph, ENABLE); + RCC_AHB1PeriphClockCmd(LCD_RCC_AHB1Periph_RST, ENABLE); + RCC_AHB1PeriphClockCmd(LCD_RCC_AHB1Periph_NCS, ENABLE); RCC->APB1ENR |= RCC_APB1ENR_SPI3EN ; // Enable clock // APB1 clock / 2 = 133nS per clock @@ -54,10 +54,10 @@ void initLcdSpi() SPI3->CR1 |= SPI_CR1_MSTR ; // Make sure in case SSM/SSI needed to be set first SPI3->CR1 |= SPI_CR1_SPE ; - configure_pins( PIN_LCD_NCS, PIN_OUTPUT | PIN_PORTA | PIN_OS25) ; - configure_pins( PIN_LCD_RST, PIN_OUTPUT | PIN_PORTD | PIN_OS25) ; - configure_pins( PIN_LCD_A0, PIN_OUTPUT | PIN_PORTC | PIN_OS50) ; - configure_pins( PIN_LCD_MOSI|PIN_LCD_CLK, PIN_PORTC | PIN_OS50 | PIN_PER_6 | PIN_PERIPHERAL ) ; + configure_pins( LCD_GPIO_PIN_NCS, PIN_OUTPUT | PIN_PORTA | PIN_OS25) ; + configure_pins( LCD_GPIO_PIN_RST, PIN_OUTPUT | PIN_PORTD | PIN_OS25) ; + configure_pins( LCD_GPIO_PIN_A0, PIN_OUTPUT | PIN_PORTC | PIN_OS50) ; + configure_pins( LCD_GPIO_PIN_MOSI|LCD_GPIO_PIN_CLK, PIN_PORTC | PIN_OS50 | PIN_PER_6 | PIN_PERIPHERAL ) ; // NVIC_SetPriority( DMA1_Stream7_IRQn, 8 ) ; @@ -263,18 +263,18 @@ void lcdRefresh() /**Init the Backlight GPIO */ static void LCD_BL_Config() { - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOBL, ENABLE); + RCC_AHB1PeriphClockCmd(BACKLIGHT_RCC_AHB1Periph_GPIO, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; #if defined(REV9E) - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_BL|GPIO_Pin_BLW; + GPIO_InitStructure.GPIO_Pin = BACKLIGHT_GPIO_PIN_1|BACKLIGHT_GPIO_PIN_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIOBL, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOBL, GPIO_PinSource_BL, Pin_BL_AF); - GPIO_PinAFConfig(GPIOBL, GPIO_PinSource_BLW, Pin_BL_AF); + GPIO_Init(BACKLIGHT_GPIO, &GPIO_InitStructure); + GPIO_PinAFConfig(BACKLIGHT_GPIO, BACKLIGHT_GPIO_PinSource_1, BACKLIGHT_GPIO_AF_1); + GPIO_PinAFConfig(BACKLIGHT_GPIO, BACKLIGHT_GPIO_PinSource_2, BACKLIGHT_GPIO_AF_1); RCC->APB2ENR |= RCC_APB2ENR_TIM9EN ; // Enable clock TIM9->ARR = 100 ; TIM9->PSC = (PERI2_FREQUENCY * TIMER_MULT_APB2) / 50000 - 1; // 20us * 100 = 2ms => 500Hz @@ -285,14 +285,14 @@ static void LCD_BL_Config() TIM9->EGR = 0 ; TIM9->CR1 = TIM_CR1_CEN ; // Counter enable #elif defined(REVPLUS) - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_BL|GPIO_Pin_BLW; + GPIO_InitStructure.GPIO_Pin = BACKLIGHT_GPIO_PIN_1|BACKLIGHT_GPIO_PIN_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIOBL, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOBL, GPIO_PinSource_BL, Pin_BL_AF); - GPIO_PinAFConfig(GPIOBL, GPIO_PinSource_BLW, Pin_BL_AF); + GPIO_Init(BACKLIGHT_GPIO, &GPIO_InitStructure); + GPIO_PinAFConfig(BACKLIGHT_GPIO, BACKLIGHT_GPIO_PinSource_1, BACKLIGHT_GPIO_AF_1); + GPIO_PinAFConfig(BACKLIGHT_GPIO, BACKLIGHT_GPIO_PinSource_2, BACKLIGHT_GPIO_AF_1); RCC->APB1ENR |= RCC_APB1ENR_TIM4EN ; // Enable clock TIM4->ARR = 100 ; @@ -305,13 +305,13 @@ static void LCD_BL_Config() TIM4->EGR = 0 ; TIM4->CR1 = TIM_CR1_CEN ; // Counter enable #else - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_BL; + GPIO_InitStructure.GPIO_Pin = BACKLIGHT_GPIO_PIN_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIOBL, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOBL, GPIO_PinSource_BL, Pin_BL_AF); + GPIO_Init(BACKLIGHT_GPIO, &GPIO_InitStructure); + GPIO_PinAFConfig(BACKLIGHT_GPIO, BACKLIGHT_GPIO_PinSource_1, BACKLIGHT_GPIO_AF_1); RCC->APB2ENR |= RCC_APB2ENR_TIM10EN ; // Enable clock TIM10->ARR = 100 ; @@ -328,31 +328,31 @@ static void LCD_BL_Config() */ static void LCD_Hardware_Init() { - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_LCD, ENABLE); + RCC_AHB1PeriphClockCmd(LCD_RCC_AHB1Periph, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; /*!< Configure lcd CLK\ MOSI\ A0pin in output push-pull mode *************/ - GPIO_InitStructure.GPIO_Pin = PIN_LCD_MOSI | PIN_LCD_CLK | PIN_LCD_A0; + GPIO_InitStructure.GPIO_Pin = LCD_GPIO_PIN_MOSI | LCD_GPIO_PIN_CLK | LCD_GPIO_PIN_A0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_LCD_SPI, &GPIO_InitStructure); + GPIO_Init(LCD_GPIO_SPI, &GPIO_InitStructure); LCD_NCS_HIGH(); /*!< Configure lcd NCS pin in output push-pull mode ,PULLUP *************/ - GPIO_InitStructure.GPIO_Pin = PIN_LCD_NCS; + GPIO_InitStructure.GPIO_Pin = LCD_GPIO_PIN_NCS; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(GPIO_LCD_NCS, &GPIO_InitStructure); + GPIO_Init(LCD_GPIO_NCS, &GPIO_InitStructure); /*!< Configure lcd RST pin in output pushpull mode ,PULLUP *************/ - GPIO_InitStructure.GPIO_Pin = PIN_LCD_RST; - GPIO_Init(GPIO_LCD_RST, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = LCD_GPIO_PIN_RST; + GPIO_Init(LCD_GPIO_RST, &GPIO_InitStructure); } /* @@ -445,25 +445,25 @@ void lcdSetRefVolt(uint8_t val) #if defined(REV9E) void turnBacklightOn(uint8_t level, uint8_t color) { - TIM_BL->CCR1 = ((100-level)*(20-color))/20; - TIM_BL->CCR2 = ((100-level)*color)/20; + BACKLIGHT_TIMER->CCR1 = ((100-level)*(20-color))/20; + BACKLIGHT_TIMER->CCR2 = ((100-level)*color)/20; } void turnBacklightOff(void) { - TIM_BL->CCR1 = 0; - TIM_BL->CCR2 = 0; + BACKLIGHT_TIMER->CCR1 = 0; + BACKLIGHT_TIMER->CCR2 = 0; } #elif defined(REVPLUS) void turnBacklightOn(uint8_t level, uint8_t color) { - TIM_BL->CCR4 = ((100-level)*(20-color))/20; - TIM_BL->CCR2 = ((100-level)*color)/20; + BACKLIGHT_TIMER->CCR4 = ((100-level)*(20-color))/20; + BACKLIGHT_TIMER->CCR2 = ((100-level)*color)/20; } void turnBacklightOff(void) { - TIM_BL->CCR4 = 0; - TIM_BL->CCR2 = 0; + BACKLIGHT_TIMER->CCR4 = 0; + BACKLIGHT_TIMER->CCR2 = 0; } #endif diff --git a/radio/src/targets/taranis/pulses_driver.cpp b/radio/src/targets/taranis/pulses_driver.cpp index e5f9c1340..3095f97a3 100644 --- a/radio/src/targets/taranis/pulses_driver.cpp +++ b/radio/src/targets/taranis/pulses_driver.cpp @@ -154,16 +154,16 @@ static void init_pa10_none() // Timer1, channel 3 GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_INTPPM, ENABLE); + RCC_AHB1PeriphClockCmd(INTMODULE_RCC_AHB1Periph_GPIO, ENABLE); - GPIO_InitStructure.GPIO_Pin = PIN_INTPPM_OUT; + GPIO_InitStructure.GPIO_Pin = INTMODULE_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_INTPPM, &GPIO_InitStructure); + GPIO_Init(INTMODULE_GPIO, &GPIO_InitStructure); - GPIO_SetBits(GPIO_INTPPM, PIN_INTPPM_OUT) ; // Set high + GPIO_SetBits(INTMODULE_GPIO, INTMODULE_GPIO_PIN) ; // Set high RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock @@ -200,16 +200,16 @@ static void init_pa7_none() // Timer8 GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_EXTPPM, ENABLE); + RCC_AHB1PeriphClockCmd(EXTMODULE_RCC_AHB1Periph_GPIO, ENABLE); - GPIO_InitStructure.GPIO_Pin = PIN_EXTPPM_OUT; + GPIO_InitStructure.GPIO_Pin = EXTMODULE_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_EXTPPM, &GPIO_InitStructure); + GPIO_Init(EXTMODULE_GPIO, &GPIO_InitStructure); - GPIO_SetBits(GPIO_EXTPPM, PIN_EXTPPM_OUT) ; // Set high + GPIO_SetBits(EXTMODULE_GPIO, EXTMODULE_GPIO_PIN) ; // Set high RCC->APB2ENR |= RCC_APB2ENR_TIM8EN ; // Enable clock @@ -245,15 +245,15 @@ static void init_pa10_pxx() // RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_INTPPM, ENABLE); + RCC_AHB1PeriphClockCmd(INTMODULE_RCC_AHB1Periph_GPIO, ENABLE); - GPIO_PinAFConfig(GPIO_INTPPM, GPIO_PinSource_INTPPM, GPIO_AF_TIM1); - GPIO_InitStructure.GPIO_Pin = PIN_INTPPM_OUT; + GPIO_PinAFConfig(INTMODULE_GPIO, INTMODULE_GPIO_PinSource, GPIO_AF_TIM1); + GPIO_InitStructure.GPIO_Pin = INTMODULE_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_INTPPM, &GPIO_InitStructure); + GPIO_Init(INTMODULE_GPIO, &GPIO_InitStructure); RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN ; // Enable DMA2 clock @@ -262,21 +262,15 @@ static void init_pa10_pxx() TIM1->ARR = 18000 ; // 9mS TIM1->CCR2 = 15000 ; // Update time TIM1->PSC = (PERI2_FREQUENCY * TIMER_MULT_APB2) / 2000000 - 1 ; // 0.5uS from 30MHz - TIM1->CCER = TIM_CCER_CC3E ; - TIM1->CR2 = TIM_CR2_OIS3 ; // O/P idle high TIM1->BDTR = TIM_BDTR_MOE ; // Enable outputs TIM1->CCR3 = modulePulsesData[INTERNAL_MODULE].pxx.pulses[0]; TIM1->CCMR2 = TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_0 ; // Force O/P high TIM1->EGR = 1 ; // Restart - -// TIM1->SR &= ~TIM_SR_UIF ; // Clear flag -// TIM1->SR &= ~TIM_SR_CC2IF ; // Clear flag TIM1->DIER |= TIM_DIER_CC3DE ; // Enable DMA on CC3 match TIM1->DCR = 15 ; // DMA to CC1 -// TIM1->CR1 = TIM_CR1_OPM ; // Just run once // Enable the DMA channel here, DMA2 stream 6, channel 6 DMA2_Stream6->CR &= ~DMA_SxCR_EN ; // Disable DMA DMA2->HIFCR = DMA_HIFCR_CTCIF6 | DMA_HIFCR_CHTIF6 | DMA_HIFCR_CTEIF6 | DMA_HIFCR_CDMEIF6 | DMA_HIFCR_CFEIF6 ; // Write ones to clear bits @@ -284,8 +278,6 @@ static void init_pa10_pxx() | DMA_SxCR_PSIZE_0 | DMA_SxCR_MINC | DMA_SxCR_DIR_0 | DMA_SxCR_PFCTRL ; DMA2_Stream6->PAR = CONVERT_PTR_UINT(&TIM1->DMAR); DMA2_Stream6->M0AR = CONVERT_PTR_UINT(&modulePulsesData[INTERNAL_MODULE].pxx.pulses[1]); -// DMA2_Stream2->FCR = 0x05 ; //DMA_SxFCR_DMDIS | DMA_SxFCR_FTH_0 ; -// DMA2_Stream2->NDTR = 100 ; DMA2_Stream6->CR |= DMA_SxCR_EN ; // Enable DMA TIM1->CCMR2 = TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_0 ; // Toggle CC1 o/p @@ -316,9 +308,9 @@ static void init_pa10_ppm() modulePulsesData[INTERNAL_MODULE].ppm.ptr = modulePulsesData[INTERNAL_MODULE].ppm.pulses; //RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_INTPPM, ENABLE); + RCC_AHB1PeriphClockCmd(INTMODULE_RCC_AHB1Periph_GPIO, ENABLE); - configure_pins( PIN_INTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25) ; + configure_pins( INTMODULE_GPIO_PIN, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25) ; RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock TIM1->CR1 &= ~TIM_CR1_CEN ; @@ -412,14 +404,14 @@ void init_pa7_pxx() RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_EXTPPM, ENABLE); - GPIO_PinAFConfig(GPIO_EXTPPM, GPIO_PinSource_EXTPPM, GPIO_AF_TIM8); - GPIO_InitStructure.GPIO_Pin = PIN_EXTPPM_OUT; + RCC_AHB1PeriphClockCmd(EXTMODULE_RCC_AHB1Periph_GPIO, ENABLE); + GPIO_PinAFConfig(EXTMODULE_GPIO, EXTMODULE_GPIO_PinSource, GPIO_AF_TIM8); + GPIO_InitStructure.GPIO_Pin = EXTMODULE_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_EXTPPM, &GPIO_InitStructure); + GPIO_Init(EXTMODULE_GPIO, &GPIO_InitStructure); RCC->APB2ENR |= RCC_APB2ENR_TIM8EN ; // Enable clock RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN ; // Enable DMA2 clock @@ -480,14 +472,14 @@ static void init_pa7_dsm2() RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_EXTPPM, ENABLE); - GPIO_PinAFConfig(GPIO_EXTPPM, GPIO_PinSource_EXTPPM, GPIO_AF_TIM8); - GPIO_InitStructure.GPIO_Pin = PIN_EXTPPM_OUT; + RCC_AHB1PeriphClockCmd(EXTMODULE_RCC_AHB1Periph_GPIO, ENABLE); + GPIO_PinAFConfig(EXTMODULE_GPIO, EXTMODULE_GPIO_PinSource, GPIO_AF_TIM8); + GPIO_InitStructure.GPIO_Pin = EXTMODULE_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_EXTPPM, &GPIO_InitStructure); + GPIO_Init(EXTMODULE_GPIO, &GPIO_InitStructure); RCC->APB2ENR |= RCC_APB2ENR_TIM8EN ; // Enable clock RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN ; // Enable DMA2 clock @@ -550,7 +542,7 @@ static void init_pa7_ppm() modulePulsesData[EXTERNAL_MODULE].ppm.ptr = modulePulsesData[EXTERNAL_MODULE].ppm.pulses; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock - configure_pins( PIN_EXTPPM_OUT, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_3 | PIN_OS25) ; + configure_pins( EXTMODULE_GPIO_PIN, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_3 | PIN_OS25) ; RCC->APB2ENR |= RCC_APB2ENR_TIM8EN ; // Enable clock TIM8->CR1 &= ~TIM_CR1_CEN ; diff --git a/radio/src/targets/taranis/pwr_driver.c b/radio/src/targets/taranis/pwr_driver.c index c3ecb269c..6f5c03d96 100644 --- a/radio/src/targets/taranis/pwr_driver.c +++ b/radio/src/targets/taranis/pwr_driver.c @@ -44,40 +44,40 @@ void pwrInit() { GPIO_InitTypeDef GPIO_InitStructure; /* GPIOC GPIOD clock enable */ - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOPWR, ENABLE); + RCC_AHB1PeriphClockCmd(PWR_RCC_AHB1Periph_GPIO, ENABLE); /* GPIO Configuration*/ - GPIO_InitStructure.GPIO_Pin = PIN_MCU_PWR; + GPIO_InitStructure.GPIO_Pin = PWR_GPIO_PIN_ON; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(GPIOPWR, &GPIO_InitStructure); + GPIO_Init(PWR_GPIO, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_PWR_STATUS; + GPIO_InitStructure.GPIO_Pin = PWR_GPIO_PIN_SWITCH; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; - GPIO_Init(GPIOPWR, &GPIO_InitStructure); + GPIO_Init(PWR_GPIO, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_PWR_LED; + GPIO_InitStructure.GPIO_Pin = PWR_GPIO_PIN_LED; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - GPIO_Init(GPIOPWRLED, &GPIO_InitStructure); + GPIO_Init(PWR_GPIO_LED, &GPIO_InitStructure); - GPIO_ResetBits(GPIO_INT_RF_PWR, PIN_INT_RF_PWR); - GPIO_InitStructure.GPIO_Pin = PIN_INT_RF_PWR; + GPIO_ResetBits(INTMODULE_GPIO_PWR, INTMODULE_GPIO_PIN_PWR); + GPIO_InitStructure.GPIO_Pin = INTMODULE_GPIO_PIN_PWR; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - GPIO_Init(GPIO_INT_RF_PWR, &GPIO_InitStructure); + GPIO_Init(INTMODULE_GPIO_PWR, &GPIO_InitStructure); - GPIO_ResetBits(GPIO_EXT_RF_PWR, PIN_EXT_RF_PWR); - GPIO_InitStructure.GPIO_Pin = PIN_EXT_RF_PWR; + GPIO_ResetBits(EXTMODULE_GPIO_PWR, EXTMODULE_GPIO_PIN_PWR); + GPIO_InitStructure.GPIO_Pin = EXTMODULE_GPIO_PIN_PWR; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - GPIO_Init(GPIO_EXT_RF_PWR, &GPIO_InitStructure); + GPIO_Init(EXTMODULE_GPIO_PWR, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_TRNDET; + GPIO_InitStructure.GPIO_Pin = TRAINER_GPIO_PIN_DETECT; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; - GPIO_Init(GPIOTRNDET, &GPIO_InitStructure); + GPIO_Init(TRAINER_GPIO_DETECT, &GPIO_InitStructure); // Soft power ON - GPIO_SetBits(GPIOPWR, PIN_MCU_PWR); + GPIO_SetBits(PWR_GPIO, PWR_GPIO_PIN_ON); #if defined(REV9E) while (pwrPressed()) ; @@ -86,7 +86,7 @@ void pwrInit() void pwrOff() { - GPIO_ResetBits(GPIOPWR, PIN_MCU_PWR); + GPIO_ResetBits(PWR_GPIO, PWR_GPIO_PIN_ON); #if defined(REV9E) // 9E needs watchdog reset because CPU is still running while the power // key is held pressed by the user @@ -99,7 +99,7 @@ void pwrOff() #if defined(REV9E) uint32_t pwrPressed() { - return GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET; + return GPIO_ReadInputDataBit(PWR_GPIO, PWR_GPIO_PIN_SWITCH) == Bit_RESET; } #if !defined(BOOT) uint32_t pwrPressTime = 0; @@ -136,7 +136,7 @@ uint32_t pwrCheck() #if defined(SIMU) return e_power_on; #else - if (GPIO_ReadInputDataBit(GPIOPWR, PIN_PWR_STATUS) == Bit_RESET) + if (GPIO_ReadInputDataBit(PWR_GPIO, PWR_GPIO_PIN_SWITCH) == Bit_RESET) return e_power_on; else if (usbPlugged()) return e_power_usb; diff --git a/radio/src/targets/taranis/telemetry_driver.cpp b/radio/src/targets/taranis/telemetry_driver.cpp index f29fd7eae..67245232d 100644 --- a/radio/src/targets/taranis/telemetry_driver.cpp +++ b/radio/src/targets/taranis/telemetry_driver.cpp @@ -41,35 +41,34 @@ extern Fifo<512> telemetryFifo; void telemetryPortInit(uint32_t baudrate) { if (baudrate == 0) { - USART_DeInit(SPORT_USART); + USART_DeInit(TELEMETRY_USART); return; } USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_SPORT, ENABLE); + RCC_AHB1PeriphClockCmd(TELEMETRY_RCC_AHB1Periph_GPIO, ENABLE); - GPIO_PinAFConfig(GPIO_PIN_SPORT_TXRX, GPIO_PinSource_SPORT_RX, GPIO_AF_SPORT); - GPIO_PinAFConfig(GPIO_PIN_SPORT_TXRX, GPIO_PinSource_SPORT_TX, GPIO_AF_SPORT); + GPIO_PinAFConfig(TELEMETRY_GPIO, TELEMETRY_GPIO_PinSource_RX, TELEMETRY_GPIO_AF); + GPIO_PinAFConfig(TELEMETRY_GPIO, TELEMETRY_GPIO_PinSource_TX, TELEMETRY_GPIO_AF); - GPIO_InitStructure.GPIO_Pin = PIN_SPORT_TX | PIN_SPORT_RX; + GPIO_InitStructure.GPIO_Pin = TELEMETRY_GPIO_PIN_TX | TELEMETRY_GPIO_PIN_RX; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIO_PIN_SPORT_TXRX, &GPIO_InitStructure); + GPIO_Init(TELEMETRY_GPIO, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = PIN_SPORT_ON; + GPIO_InitStructure.GPIO_Pin = TELEMETRY_GPIO_PIN_DIR; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIO_PIN_SPORT_ON, &GPIO_InitStructure); + GPIO_Init(TELEMETRY_GPIO_DIR, &GPIO_InitStructure); + GPIO_ResetBits(TELEMETRY_GPIO_DIR, TELEMETRY_GPIO_PIN_DIR); - GPIO_ResetBits(GPIO_PIN_SPORT_ON, PIN_SPORT_ON); - - RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPORT, ENABLE); + RCC_APB1PeriphClockCmd(TELEMETRY_RCC_APB1Periph_USART, ENABLE); USART_InitStructure.USART_BaudRate = baudrate; USART_InitStructure.USART_WordLength = USART_WordLength_8b; @@ -78,12 +77,12 @@ void telemetryPortInit(uint32_t baudrate) USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; - USART_Init(SPORT_USART, &USART_InitStructure); - USART_Cmd(SPORT_USART, ENABLE); - USART_ITConfig(SPORT_USART, USART_IT_RXNE, ENABLE); + USART_Init(TELEMETRY_USART, &USART_InitStructure); + USART_Cmd(TELEMETRY_USART, ENABLE); + USART_ITConfig(TELEMETRY_USART, USART_IT_RXNE, ENABLE); - NVIC_SetPriority(SPORT_IRQn, 6); - NVIC_EnableIRQ(SPORT_IRQn); + NVIC_SetPriority(TELEMETRY_USART_IRQn, 6); + NVIC_EnableIRQ(TELEMETRY_USART_IRQn); } struct SportTxBuffer @@ -96,47 +95,47 @@ void sportSendBuffer(uint8_t *buffer, uint32_t count) { sportTxBuffer.ptr = buffer ; sportTxBuffer.count = count ; - GPIO_PIN_SPORT_ON->BSRRL = PIN_SPORT_ON ; // output enable - SPORT_USART->CR1 &= ~USART_CR1_RE ; // turn off receiver - SPORT_USART->CR1 |= USART_CR1_TXEIE ; + TELEMETRY_GPIO_DIR->BSRRL = TELEMETRY_GPIO_PIN_DIR ; // output enable + TELEMETRY_USART->CR1 &= ~USART_CR1_RE ; // turn off receiver + TELEMETRY_USART->CR1 |= USART_CR1_TXEIE ; } #if !defined(SIMU) #define USART_FLAG_ERRORS (USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_FE | USART_FLAG_PE) -extern "C" void SPORT_IRQHandler() +extern "C" void TELEMETRY_USART_IRQHandler() { uint32_t status; uint8_t data; - status = SPORT_USART->SR; + status = TELEMETRY_USART->SR; if (status & USART_SR_TXE) { if (sportTxBuffer.count) { - SPORT_USART->DR = *sportTxBuffer.ptr++; + TELEMETRY_USART->DR = *sportTxBuffer.ptr++; if (--sportTxBuffer.count == 0) { - SPORT_USART->CR1 &= ~USART_CR1_TXEIE; // stop Tx interrupt - SPORT_USART->CR1 |= USART_CR1_TCIE; // enable complete interrupt + TELEMETRY_USART->CR1 &= ~USART_CR1_TXEIE; // stop Tx interrupt + TELEMETRY_USART->CR1 |= USART_CR1_TCIE; // enable complete interrupt } } } - if ((status & USART_SR_TC) && (SPORT_USART->CR1 & USART_CR1_TCIE)) { - SPORT_USART->CR1 &= ~USART_CR1_TCIE ; // stop Complete interrupt - GPIO_PIN_SPORT_ON->BSRRH = PIN_SPORT_ON ; // output disable - SPORT_USART->CR1 |= USART_CR1_RE ; + if ((status & USART_SR_TC) && (TELEMETRY_USART->CR1 & USART_CR1_TCIE)) { + TELEMETRY_USART->CR1 &= ~USART_CR1_TCIE ; // stop Complete interrupt + TELEMETRY_GPIO_DIR->BSRRH = TELEMETRY_GPIO_PIN_DIR ; // output disable + TELEMETRY_USART->CR1 |= USART_CR1_RE ; while (status & (USART_FLAG_RXNE)) { - status = SPORT_USART->DR; - status = SPORT_USART->SR ; + status = TELEMETRY_USART->DR; + status = TELEMETRY_USART->SR ; } } while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) { - data = SPORT_USART->DR; + data = TELEMETRY_USART->DR; if (!(status & USART_FLAG_ERRORS)) { telemetryFifo.push(data); } - status = SPORT_USART->SR; + status = TELEMETRY_USART->SR; } } #endif diff --git a/radio/src/targets/taranis/top_lcd_driver.cpp b/radio/src/targets/taranis/top_lcd_driver.cpp index dfe434186..ae933e9f0 100755 --- a/radio/src/targets/taranis/top_lcd_driver.cpp +++ b/radio/src/targets/taranis/top_lcd_driver.cpp @@ -34,6 +34,17 @@ * */ +#define CS1_HIGH() TOPLCD_GPIO->BSRRL = TOPLCD_GPIO_PIN_CS1 +#define CS1_LOW() TOPLCD_GPIO->BSRRH = TOPLCD_GPIO_PIN_CS1 +#define CS2_HIGH() TOPLCD_GPIO->BSRRL = TOPLCD_GPIO_PIN_CS2 +#define CS2_LOW() TOPLCD_GPIO->BSRRH = TOPLCD_GPIO_PIN_CS2 +#define WR_HIGH() TOPLCD_GPIO->BSRRL = TOPLCD_GPIO_PIN_WR +#define WR_LOW() TOPLCD_GPIO->BSRRH = TOPLCD_GPIO_PIN_WR +#define DATA_HIGH() TOPLCD_GPIO->BSRRL = TOPLCD_GPIO_PIN_DATA +#define DATA_LOW() TOPLCD_GPIO->BSRRH = TOPLCD_GPIO_PIN_DATA +#define BL_ON() TOPLCD_GPIO->BSRRL = TOPLCD_GPIO_PIN_BL +#define BL_OFF() TOPLCD_GPIO->BSRRH = TOPLCD_GPIO_PIN_BL + const uint8_t TimeLCDsegs[] = { 0xAF, 0x06, 0x6D, 0x4F, 0xC6, 0xCB, 0xEB, 0x0E, 0xEF, 0xCF }; const uint8_t RssiLCDsegs[] = { 0xFA, 0x60, 0xBC, 0xF4, 0x66, 0xD6, 0xDE, 0x70, 0xFE, 0xF6 }; const uint8_t OpTimeLCDsegs[] = { 0x5F, 0x06, 0x6B, 0x2F, 0x36, 0x3D, 0x7D, 0x07, 0x7F, 0x3F }; @@ -49,57 +60,57 @@ void delay1_7us() void ht1621SendCommand(uint8_t chip, unsigned char command) { if (chip) - CS2_LOW; + CS2_LOW(); else - CS1_LOW; + CS1_LOW(); delay1_7us(); - WR_LOW; //PRESENT 100 COMMAND CODE + WR_LOW(); //PRESENT 100 COMMAND CODE delay1_7us(); - DATA_HIGH; + DATA_HIGH(); delay1_7us(); - WR_HIGH; + WR_HIGH(); delay1_7us(); - WR_LOW; + WR_LOW(); delay1_7us(); - DATA_LOW; + DATA_LOW(); delay1_7us(); - WR_HIGH; + WR_HIGH(); delay1_7us(); - WR_LOW; + WR_LOW(); delay1_7us(); - DATA_LOW; + DATA_LOW(); delay1_7us(); - WR_HIGH; + WR_HIGH(); delay1_7us(); for (int i=0; i<8; i++) { - WR_LOW; + WR_LOW(); delay1_7us(); if ((command & 0x80) !=0) { - DATA_HIGH; + DATA_HIGH(); delay1_7us(); } else { - DATA_LOW; + DATA_LOW(); delay1_7us(); } - WR_HIGH; + WR_HIGH(); delay1_7us(); command = command << 1; } - WR_LOW; + WR_LOW(); delay1_7us(); - WR_HIGH; + WR_HIGH(); delay1_7us(); if (chip) - CS2_HIGH; + CS2_HIGH(); else - CS1_HIGH; + CS1_HIGH(); delay1_7us(); } @@ -107,13 +118,13 @@ void ht1621SendCommand(uint8_t chip, unsigned char command) void ht1621WrData(uint8_t data, uint8_t count) { while (count) { - WR_LOW; + WR_LOW(); if (data & 0x80) - DATA_HIGH; + DATA_HIGH(); else - DATA_LOW; + DATA_LOW(); delay1_7us(); - WR_HIGH; + WR_HIGH(); delay1_7us(); data <<= 1; count -= 1; @@ -125,11 +136,11 @@ void ht1621WrAllData(uint8_t chip, uint8_t *pData) int len; if (chip) { len = sizeof(Ht1621Data2); - CS2_LOW; + CS2_LOW(); } else { len = sizeof(Ht1621Data1); - CS1_LOW; + CS1_LOW(); } delay1_7us(); ht1621WrData(0xa0, 3); @@ -138,9 +149,9 @@ void ht1621WrAllData(uint8_t chip, uint8_t *pData) ht1621WrData(*pData++, 8); } if (chip) - CS2_HIGH; + CS2_HIGH(); else - CS1_HIGH; + CS1_HIGH(); delay1_7us(); } @@ -168,21 +179,21 @@ extern "C" void TIM8_BRK_TIM12_IRQHandler() if ( pc->state == TOP_LCD_CKLOW ) { - WR_LOW ; //PRESENT 100 COMMAND CODE + WR_LOW() ; //PRESENT 100 COMMAND CODE if ((*pc->data & 0x80) !=0) { - DATA_HIGH ; + DATA_HIGH() ; } else { - DATA_LOW ; + DATA_LOW() ; } *pc->data <<= 1 ; pc->state = TOP_LCD_CKHI ; } else if ( pc->state == TOP_LCD_CKHI ) { - WR_HIGH ; + WR_HIGH() ; if ( --pc->count == 0 ) { pc->state = TOP_LCD_END ; @@ -196,13 +207,13 @@ extern "C" void TIM8_BRK_TIM12_IRQHandler() { if ( pc->chip ) { - CS2_HIGH ; + CS2_HIGH() ; pc->state = TOP_LCD_IDLE ; TIM12->DIER &= ~1 ; } else { - CS1_HIGH ; + CS1_HIGH() ; pc->chip = 1 ; pc->data = pc->data2 ; pc->count = pc->count2 ; @@ -211,19 +222,19 @@ extern "C" void TIM8_BRK_TIM12_IRQHandler() } else if ( pc->state == TOP_LCD_IDLE ) { - WR_HIGH; - if ( pc->chip ) CS2_LOW ; else CS1_LOW ; + WR_HIGH(); + if ( pc->chip ) CS2_LOW() ; else CS1_LOW() ; pc->state = TOP_LCD_1CKLOW ; } else if ( pc->state == TOP_LCD_1CKLOW ) { - WR_LOW ; - DATA_HIGH ; // First 1 bit + WR_LOW() ; + DATA_HIGH() ; // First 1 bit pc->state = TOP_LCD_1CKHI ; } else if ( pc->state == TOP_LCD_1CKHI ) { - WR_HIGH ; + WR_HIGH() ; if ( --pc->count == 0 ) { pc->state = TOP_LCD_END ; @@ -238,16 +249,16 @@ extern "C" void TIM8_BRK_TIM12_IRQHandler() void topLcdInit() { - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_VA, ENABLE); + RCC_AHB1PeriphClockCmd(TOPLCD_RCC_AHB1Periph_GPIO, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; - GPIO_InitStructure.GPIO_Pin = PIN_VA_DATA | PIN_VA_WR |PIN_VA_BL|PIN_VA_CS|PIN_VA_CS2; + GPIO_InitStructure.GPIO_Pin = TOPLCD_GPIO_PIN_DATA | TOPLCD_GPIO_PIN_WR |TOPLCD_GPIO_PIN_BL|TOPLCD_GPIO_PIN_CS1|TOPLCD_GPIO_PIN_CS2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(GPIO_VA, &GPIO_InitStructure); + GPIO_Init(TOPLCD_GPIO, &GPIO_InitStructure); - VA_BL_ON; + BL_ON(); ht1621SendCommand(0, 0x03); ht1621SendCommand(0, 0x01); @@ -263,7 +274,7 @@ void topLcdInit() void topLcdOff() { - VA_BL_OFF; + BL_OFF(); topLcdRefreshStart(); topLcdRefreshEnd(); } diff --git a/radio/src/targets/taranis/trainer_driver.cpp b/radio/src/targets/taranis/trainer_driver.cpp index ae9fd0de9..94bbb94dd 100644 --- a/radio/src/targets/taranis/trainer_driver.cpp +++ b/radio/src/targets/taranis/trainer_driver.cpp @@ -46,8 +46,8 @@ void init_trainer_ppm() trainerPulsesData.ppm.ptr = trainerPulsesData.ppm.pulses; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN ; // Enable portC clock - configure_pins( PIN_TR_PPM_OUT, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2 | PIN_OS25) ; - configure_pins( PIN_TR_PPM_IN, PIN_PORTA | PIN_INPUT ) ; + configure_pins( TRAINER_GPIO_PIN_OUT, PIN_PERIPHERAL | PIN_PORTC | PIN_PER_2 | PIN_OS25) ; + configure_pins( TRAINER_GPIO_PIN_IN, PIN_PORTA | PIN_INPUT ) ; RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ; // Enable clock TIM3->CR1 &= ~TIM_CR1_CEN ; @@ -74,7 +74,7 @@ void init_trainer_ppm() // TODO - testing void stop_trainer_ppm() { - configure_pins( PIN_TR_PPM_OUT, PIN_INPUT | PIN_PORTC ) ; // Pin as input + configure_pins( TRAINER_GPIO_PIN_OUT, PIN_INPUT | PIN_PORTC ) ; // Pin as input TIM3->DIER = 0 ; // Stop Interrupt TIM3->CR1 &= ~TIM_CR1_CEN ; // Stop counter NVIC_DisableIRQ(TIM3_IRQn) ; // Stop Interrupt @@ -93,13 +93,13 @@ void init_trainer_capture() GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); - GPIO_InitStructure.GPIO_Pin = PIN_TR_PPM_IN; + GPIO_InitStructure.GPIO_Pin = TRAINER_GPIO_PIN_IN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_Init(GPIO_TR_INOUT, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIO_TR_INOUT, GPIO_PinSource8, GPIO_AF_TIM3); + GPIO_Init(TRAINER_GPIO, &GPIO_InitStructure); + GPIO_PinAFConfig(TRAINER_GPIO, GPIO_PinSource8, GPIO_AF_TIM3); RCC->APB1ENR |= RCC_APB1ENR_TIM3EN ; TIM3->ARR = 0xFFFF ; diff --git a/radio/src/targets/taranis/uart3_driver.cpp b/radio/src/targets/taranis/uart3_driver.cpp index a38e036bc..8656370a6 100644 --- a/radio/src/targets/taranis/uart3_driver.cpp +++ b/radio/src/targets/taranis/uart3_driver.cpp @@ -46,19 +46,19 @@ void uart3Setup(unsigned int baudrate) USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO_UART3, ENABLE); + RCC_AHB1PeriphClockCmd(SERIAL_RCC_AHB1Periph_GPIO, ENABLE); - GPIO_PinAFConfig(GPIO_UART3, GPIO_PinSource_UART3_RX, GPIO_AF_UART3); - GPIO_PinAFConfig(GPIO_UART3, GPIO_PinSource_UART3_TX, GPIO_AF_UART3); + GPIO_PinAFConfig(SERIAL_GPIO, SERIAL_GPIO_PinSource_RX, SERIAL_GPIO_AF); + GPIO_PinAFConfig(SERIAL_GPIO, SERIAL_GPIO_PinSource_TX, SERIAL_GPIO_AF); - GPIO_InitStructure.GPIO_Pin = GPIO_PIN_UART3_TX | GPIO_PIN_UART3_RX; + GPIO_InitStructure.GPIO_Pin = SERIAL_GPIO_PIN_TX | SERIAL_GPIO_PIN_RX; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; - GPIO_Init(GPIO_UART3, &GPIO_InitStructure); + GPIO_Init(SERIAL_GPIO, &GPIO_InitStructure); - RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART3, ENABLE); + RCC_APB1PeriphClockCmd(SERIAL_RCC_APB1Periph_USART, ENABLE); USART_InitStructure.USART_BaudRate = baudrate; USART_InitStructure.USART_WordLength = USART_WordLength_8b; @@ -67,11 +67,11 @@ void uart3Setup(unsigned int baudrate) USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; - USART_Init(UART3, &USART_InitStructure); - USART_Cmd(UART3, ENABLE); + USART_Init(SERIAL_USART, &USART_InitStructure); + USART_Cmd(SERIAL_USART, ENABLE); - USART_ITConfig(UART3, USART_IT_RXNE, ENABLE); - USART_ITConfig(UART3, USART_IT_TXE, DISABLE); + USART_ITConfig(SERIAL_USART, USART_IT_RXNE, ENABLE); + USART_ITConfig(SERIAL_USART, USART_IT_TXE, DISABLE); NVIC_SetPriority(USART3_IRQn, 7); NVIC_EnableIRQ(USART3_IRQn); @@ -105,7 +105,7 @@ void uart3Init(unsigned int mode, unsigned int protocol) void uart3Putc(const char c) { uart3TxFifo.push(c); - USART_ITConfig(UART3, USART_IT_TXE, ENABLE); + USART_ITConfig(SERIAL_USART, USART_IT_TXE, ENABLE); } #if defined(DEBUG) @@ -132,14 +132,14 @@ void uart3Stop() extern "C" void USART3_IRQHandler(void) { // Send - if (USART_GetITStatus(UART3, USART_IT_TXE) != RESET) { + if (USART_GetITStatus(SERIAL_USART, USART_IT_TXE) != RESET) { uint8_t txchar; if (uart3TxFifo.pop(txchar)) { /* Write one byte to the transmit data register */ - USART_SendData(UART3, txchar); + USART_SendData(SERIAL_USART, txchar); } else { - USART_ITConfig(UART3, USART_IT_TXE, DISABLE); + USART_ITConfig(SERIAL_USART, USART_IT_TXE, DISABLE); } } diff --git a/radio/src/targets/taranis/usb_bsp.c b/radio/src/targets/taranis/usb_bsp.c index accbeaa83..eefa412a2 100644 --- a/radio/src/targets/taranis/usb_bsp.c +++ b/radio/src/targets/taranis/usb_bsp.c @@ -45,39 +45,27 @@ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) { GPIO_InitTypeDef GPIO_InitStructure; - RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE); - - /* Configure SOF ID DM DP Pins */ - GPIO_InitStructure.GPIO_Pin = // GPIO_Pin_8 | - GPIO_Pin_11 | - GPIO_Pin_12; + RCC_AHB1PeriphClockCmd(USB_RCC_AHB1Periph_GPIO, ENABLE); + /* Configure DM and DP Pins */ + GPIO_InitStructure.GPIO_Pin = USB_GPIO_PIN_DM | USB_GPIO_PIN_DP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; - GPIO_Init(GPIOA, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(USB_GPIO, &GPIO_InitStructure); - //GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_OTG1_FS) ; - GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG1_FS) ; - GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG1_FS) ; + GPIO_PinAFConfig(USB_GPIO, USB_GPIO_PinSource_DM, USB_GPIO_AF); + GPIO_PinAFConfig(USB_GPIO, USB_GPIO_PinSource_DP, USB_GPIO_AF); - /* Configure VBUS Pin */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; + /* Configure VBUS Pin */ + GPIO_InitStructure.GPIO_Pin = USB_GPIO_PIN_VBUS; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; - GPIO_Init(GPIOA, &GPIO_InitStructure); + GPIO_Init(USB_GPIO, &GPIO_InitStructure); -/* // Configure ID pin - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; - GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_Init(GPIOA, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG1_FS) ; -*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE) ; } diff --git a/radio/src/targets/taranis/usb_driver.c b/radio/src/targets/taranis/usb_driver.c index 5e172071f..cada14b7b 100644 --- a/radio/src/targets/taranis/usb_driver.c +++ b/radio/src/targets/taranis/usb_driver.c @@ -44,7 +44,7 @@ int usbPlugged(void) static uint8_t debounced_state = 0; static uint8_t last_state = 0; - if ( GPIO_ReadInputDataBit(GPIOA, PIN_FS_VBUS) ) { + if ( GPIO_ReadInputDataBit(USB_GPIO, USB_GPIO_PIN_VBUS) ) { if (last_state) debounced_state = 1; last_state = 1; }