-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCustomSerial1.cpp
41 lines (34 loc) · 1.16 KB
/
CustomSerial1.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
* CustomSerial1.cpp
*
* Created on: Nov 9, 2020
* Author: Lynkit-Vinas
*/
#include "Arduino.h"
#include "CustomSerial.h"
#include "CustomSerial_Private.h"
// Each HardwareSerial is defined in its own file, since the linker pulls
// in the entire file when any element inside is used. --gc-sections can
// additionally cause unused symbols to be dropped, but ISRs have the
// "used" attribute so are never dropped and they keep the
// HardwareSerial instance in as well. Putting each instance in its own
// file prevents the linker from pulling in any unused instances in the
// first place.
#if defined(HAVE_C_SERIAL1)
#if defined(UART1_RX_vect)
ISR(UART1_RX_vect)
#elif defined(USART1_RX_vect)
ISR(USART1_RX_vect)
#else
#error "Don't know what the Data Register Empty vector is called for Serial1"
#endif
{
C_Serial1._rx_complete_irq();
}
CustomSerial C_Serial1(&UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1);
// Function that can be weakly referenced by serialEventRun to prevent
// pulling in this file if it's not otherwise used.
bool C_Serial1_available() {
return C_Serial1.available();
}
#endif // HAVE_C_SERIAL1