1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-12-23 12:51:24 +01:00

Merge branch 'PORTX_HAL-cursense2' of https://github.com/DCC-EX/CommandStation-EX into PORTX_HAL-cursense2

This commit is contained in:
Harald Barth 2022-10-25 12:01:13 +02:00
commit d60a55091f
4 changed files with 57 additions and 8 deletions

View File

@ -1,5 +1,5 @@
/* /*
* © 2022 Paul M Antoine * © 2022 Paul M. Antoine
* © 2021 Mike S * © 2021 Mike S
* © 2021 Harald Barth * © 2021 Harald Barth
* © 2021 Fred Decker * © 2021 Fred Decker
@ -37,6 +37,11 @@
#if defined(STM32F411RE) #if defined(STM32F411RE)
// STM32F411RE doesn't have Serial1 defined by default // STM32F411RE doesn't have Serial1 defined by default
HardwareSerial Serial1(PB7, PA15); // Rx=PB7, Tx=PA15 -- CN7 pins 17 and 21 - F411RE HardwareSerial Serial1(PB7, PA15); // Rx=PB7, Tx=PA15 -- CN7 pins 17 and 21 - F411RE
// Serial2 is defined to use USART2 by default, but is in fact used as the diag console
// via the debugger on the Nucleo-64 STM32F411RE. It is therefore unavailable
// for other DCC-EX uses like WiFi, DFPlayer, etc.
// Let's define Serial6 as an additional serial port (the only other option for the F411RE)
HardwareSerial Serial6(PA12, PA11); // Rx=PA12, Tx=PA11 -- CN10 pins 12 and 14 - F411RE
#elif defined(STM32F446ZE) #elif defined(STM32F446ZE)
// STM32F446ZE doesn't have Serial1 defined by default // STM32F446ZE doesn't have Serial1 defined by default
HardwareSerial Serial1(PG9, PG14); // Rx=PG9, Tx=PG14 -- D0, D1 - F446ZE HardwareSerial Serial1(PG9, PG14); // Rx=PG9, Tx=PG14 -- D0, D1 - F446ZE
@ -127,4 +132,31 @@ void DCCTimer::reset() {
while(true) {}; while(true) {};
} }
int16_t ADCee::ADCmax() {
return 4095;
}
int ADCee::init(uint8_t pin) {
return analogRead(pin);
}
/*
* Read function ADCee::read(pin) to get value instead of analogRead(pin)
*/
int ADCee::read(uint8_t pin, bool fromISR) {
int current;
if (!fromISR) noInterrupts();
current = analogRead(pin);
if (!fromISR) interrupts();
return current;
}
/*
* Scan function that is called from interrupt
*/
void ADCee::scan() {
}
void ADCee::begin() {
noInterrupts();
interrupts();
}
#endif #endif

8
FSH.h
View File

@ -1,5 +1,5 @@
/* /*
* © 2022 Paul M Antoine * © 2022 Paul M. Antoine
* © 2021 Neil McKechnie * © 2021 Neil McKechnie
* © 2021 Harald Barth * © 2021 Harald Barth
* © 2021 Fred Decker * © 2021 Fred Decker
@ -48,10 +48,10 @@ typedef char FSH;
#define FLASH #define FLASH
#define strlen_P strlen #define strlen_P strlen
#define strcpy_P strcpy #define strcpy_P strcpy
#elif defined(ARDUINO_ARCH_STM32) #elif defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_STM32)
typedef __FlashStringHelper FSH; typedef __FlashStringHelper FSH;
#define GETFLASH(addr) pgm_read_byte_near(addr) #define GETFLASH(addr) pgm_read_byte(addr)
#define GETFLASHW(addr) pgm_read_word_near(addr) #define GETFLASHW(addr) (*(const unsigned int8_t *)(addr)) | ((*(const unsigned int8_t *)(addr+1)) << 8)
#ifdef FLASH #ifdef FLASH
#undef FLASH #undef FLASH
#endif #endif

View File

@ -1,5 +1,5 @@
/* /*
* © 2022 Paul M Antoine * © 2022 Paul M. Antoine
* © 2021 Chris Harlow * © 2021 Chris Harlow
* © 2022 Harald Barth * © 2022 Harald Barth
* All rights reserved. * All rights reserved.
@ -51,6 +51,18 @@ void SerialManager::init() {
while (!USB_SERIAL && millis() < 5000); // wait max 5s for Serial to start while (!USB_SERIAL && millis() < 5000); // wait max 5s for Serial to start
new SerialManager(&USB_SERIAL); new SerialManager(&USB_SERIAL);
#ifdef SERIAL6_COMMANDS
Serial6.begin(115200);
new SerialManager(&Serial6);
#endif
#ifdef SERIAL5_COMMANDS
Serial5.begin(115200);
new SerialManager(&Serial5);
#endif
#ifdef SERIAL4_COMMANDS
Serial4.begin(115200);
new SerialManager(&Serial4);
#endif
#ifdef SERIAL3_COMMANDS #ifdef SERIAL3_COMMANDS
Serial3.begin(115200); Serial3.begin(115200);
new SerialManager(&Serial3); new SerialManager(&Serial3);

View File

@ -1,4 +1,5 @@
/* /*
* © 2022 Paul M. Antoine
* © 2021 Neil McKechnie * © 2021 Neil McKechnie
* © 2020-2021 Harald Barth * © 2020-2021 Harald Barth
* © 2020-2021 Fred Decker * © 2020-2021 Fred Decker
@ -191,14 +192,18 @@ The configuration file for DCC-EX Command Station
// HANDLING MULTIPLE SERIAL THROTTLES // HANDLING MULTIPLE SERIAL THROTTLES
// The command station always operates with the default Serial port. // The command station always operates with the default Serial port.
// Diagnostics are only emitted on the default serial port and not broadcast. // Diagnostics are only emitted on the default serial port and not broadcast.
// Other serial throttles may be added to the Serial1, Serial2, Serial3 ports // Other serial throttles may be added to the Serial1, Serial2, Serial3, Serial4,
// which may or may not exist on your CPU. (Mega has all 3) // Serial5, and Serial6 ports which may or may not exist on your CPU. (Mega has 3,
// SAMD/SAMC and STM32 have up to 6.)
// To monitor a throttle on one or more serial ports, uncomment the defines below. // To monitor a throttle on one or more serial ports, uncomment the defines below.
// NOTE: do not define here the WiFi shield serial port or your wifi will not work. // NOTE: do not define here the WiFi shield serial port or your wifi will not work.
// //
//#define SERIAL1_COMMANDS //#define SERIAL1_COMMANDS
//#define SERIAL2_COMMANDS //#define SERIAL2_COMMANDS
//#define SERIAL3_COMMANDS //#define SERIAL3_COMMANDS
//#define SERIAL4_COMMANDS
//#define SERIAL5_COMMANDS
//#define SERIAL6_COMMANDS
// //
// BLUETOOTH SERIAL ON ESP32 // BLUETOOTH SERIAL ON ESP32
// On ESP32 you have the possibility to use the builtin BT serial to connect to // On ESP32 you have the possibility to use the builtin BT serial to connect to