Merge pull request #226 from g0wfv/AltSoftSerial

UMP: Allow boards without a second hardware UART to host the Nextion Display
This commit is contained in:
Jonathan Naylor 2016-11-22 21:50:13 +00:00 committed by GitHub
commit 64735af01e
1 changed files with 18 additions and 3 deletions

View File

@ -16,6 +16,10 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) && !defined(__AVR_ATmega32U4__) && !defined(__SAM3X8E__) && !defined(__MK20DX256__)
#include <AltSoftSerial.h>
#endif
#if !defined(PIN_LED) #if !defined(PIN_LED)
#define PIN_LED 13 #define PIN_LED 13
#endif #endif
@ -41,11 +45,15 @@
#define PIN_TX 6 #define PIN_TX 6
#define PIN_CD 7 #define PIN_CD 7
#define PIN_LOCKOUT 8 #define PIN_LOCKOUT 12
#define FLASH_DELAY 3200U #define FLASH_DELAY 3200U
#endif #endif
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) && !defined(__AVR_ATmega32U4__) && !defined(__SAM3X8E__) && !defined(__MK20DX256__)
AltSoftSerial mySerial;
#endif
// Use the LOCKOUT function on the UMP // Use the LOCKOUT function on the UMP
// #define USE_LOCKOUT // #define USE_LOCKOUT
@ -55,6 +63,8 @@ void setup()
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__) || defined(__SAM3X8E__) || defined(__MK20DX256__) #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__) || defined(__SAM3X8E__) || defined(__MK20DX256__)
Serial1.begin(9600); Serial1.begin(9600);
#else
mySerial.begin(9600);
#endif #endif
pinMode(PIN_LED, OUTPUT); pinMode(PIN_LED, OUTPUT);
@ -136,11 +146,13 @@ void loop()
case UMP_SET_CD: case UMP_SET_CD:
digitalWrite(PIN_CD, m_buffer[3U] == 0x01U ? HIGH : LOW); digitalWrite(PIN_CD, m_buffer[3U] == 0x01U ? HIGH : LOW);
break; break;
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__) || defined(__SAM3X8E__) || defined(__MK20DX256__)
case UMP_WRITE_SERIAL: case UMP_WRITE_SERIAL:
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__) || defined(__SAM3X8E__) || defined(__MK20DX256__)
Serial1.write(m_buffer + 3U, m_length - 3U); Serial1.write(m_buffer + 3U, m_length - 3U);
break; #else
mySerial.write(m_buffer + 3U, m_length - 3U);
#endif #endif
break;
default: default:
break; break;
} }
@ -169,6 +181,9 @@ void loop()
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__) || defined(__SAM3X8E__) || defined(__MK20DX256__) #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__) || defined(__SAM3X8E__) || defined(__MK20DX256__)
while (Serial1.available()) while (Serial1.available())
Serial1.read(); Serial1.read();
#else
while (mySerial.available())
mySerial.read();
#endif #endif
m_count++; m_count++;