T4.1 - Serial8 is on pins 34 and 35teensy4-core
| @@ -62,7 +62,7 @@ | |||
| #define UART_CLOCK 24000000 | |||
| #if defined(__IMXRT1052__) | |||
| #if defined(ARDUINO_TEENSY41) | |||
| SerialEventCheckingFunctionPointer HardwareSerial::serial_event_handler_checks[8] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; | |||
| #else | |||
| SerialEventCheckingFunctionPointer HardwareSerial::serial_event_handler_checks[7] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; | |||
| @@ -120,7 +120,7 @@ extern "C" { | |||
| extern void IRQHandler_Serial5(); | |||
| extern void IRQHandler_Serial6(); | |||
| extern void IRQHandler_Serial7(); | |||
| #if defined(__IMXRT1052__) | |||
| #if defined(ARDUINO_TEENSY41) | |||
| extern void IRQHandler_Serial8(); | |||
| #endif | |||
| } | |||
| @@ -243,7 +243,7 @@ private: | |||
| friend void IRQHandler_Serial5(); | |||
| friend void IRQHandler_Serial6(); | |||
| friend void IRQHandler_Serial7(); | |||
| #if defined(__IMXRT1052__) | |||
| #if defined(ARDUINO_TEENSY41) | |||
| friend void IRQHandler_Serial8(); | |||
| static SerialEventCheckingFunctionPointer serial_event_handler_checks[8]; | |||
| #else | |||
| @@ -268,7 +268,7 @@ extern void serialEvent5(void); | |||
| extern void serialEvent6(void); | |||
| extern void serialEvent7(void); | |||
| #if defined(__IMXRT1052__) | |||
| #if defined(ARDUINO_TEENSY41) | |||
| extern HardwareSerial Serial8; | |||
| extern void serialEvent8(void); | |||
| #endif | |||
| @@ -57,8 +57,13 @@ static BUFTYPE rx_buffer5[SERIAL5_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART8_Hardware = { | |||
| 4, IRQ_LPUART8, &IRQHandler_Serial5, &serial_event_check_serial5, | |||
| CCM_CCGR6, CCM_CCGR6_LPUART8(CCM_CCGR_ON), | |||
| #if defined(ARDUINO_TEENSY41) | |||
| {{21,2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 1}, {46, 2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 0}}, | |||
| {{20,2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 1}, {47, 2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 0}}, | |||
| #else | |||
| {{21,2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 1}, {38, 2, &IOMUXC_LPUART8_RX_SELECT_INPUT, 0}}, | |||
| {{20,2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 1}, {39, 2, &IOMUXC_LPUART8_TX_SELECT_INPUT, 0}}, | |||
| #endif | |||
| 0xff, // No CTS pin | |||
| 0, // No CTS | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| @@ -30,7 +30,7 @@ | |||
| #include <Arduino.h> | |||
| #include "HardwareSerial.h" | |||
| #if defined(__IMXRT1052__) | |||
| #if defined(__IMXRT1062__) && defined(ARDUINO_TEENSY41) | |||
| #ifndef SERIAL8_TX_BUFFER_SIZE | |||
| #define SERIAL8_TX_BUFFER_SIZE 40 // number of outgoing bytes to buffer | |||
| @@ -59,8 +59,9 @@ static BUFTYPE rx_buffer8[SERIAL8_RX_BUFFER_SIZE]; | |||
| static HardwareSerial::hardware_t UART5_Hardware = { | |||
| 7, IRQ_LPUART5, &IRQHandler_Serial8, &serial_event_check_serial8, | |||
| CCM_CCGR3, CCM_CCGR3_LPUART5(CCM_CCGR_ON), | |||
| {{30,2, &IOMUXC_LPUART5_RX_SELECT_INPUT, 0}, {0xff, 0xff, nullptr, 0}}, | |||
| {{31,2, nullptr, 0}, {0xff, 0xff, nullptr, 0}}, | |||
| {{34,1, &IOMUXC_LPUART5_RX_SELECT_INPUT, 1}, {0xff, 0xff, nullptr, 0}}, | |||
| {{35,1, &IOMUXC_LPUART5_TX_SELECT_INPUT, 1}, {0xff, 0xff, nullptr, 0}}, | |||
| 0xff, // No CTS pin | |||
| 0, // No CTS | |||
| IRQ_PRIORITY, 38, 24, // IRQ, rts_low_watermark, rts_high_watermark | |||
| @@ -93,9 +93,13 @@ const static uint8_t SCL = 19; | |||
| #define PIN_SERIAL_TX (1) | |||
| #ifdef ARDUINO_TEENSY41 | |||
| #define NUM_DIGITAL_PINS 55 | |||
| #define NUM_ANALOG_INPUTS 18 | |||
| #else | |||
| #define NUM_DIGITAL_PINS 40 | |||
| #define NUM_ANALOG_INPUTS 14 | |||
| #endif | |||
| #define NOT_AN_INTERRUPT -1 | |||