Skip to content

Commit 06cdc4a

Browse files
committed
Refactor UART variants to use shared core serial emitters
1 parent 1ab1bd7 commit 06cdc4a

82 files changed

Lines changed: 287 additions & 658 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cores/arduino/Uart.cpp

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,50 @@
2424
#define NO_CTS_PIN 255
2525
#define RTS_RX_THRESHOLD 10
2626

27+
// Derive SERCOM ISR symbols from PERIPH_SERIAL* tokens (e.g. sercom4 ->
28+
// SERCOM4_Handler) so variants only need to describe the UART routing.
29+
#define UART_SERCOM_INDEX_sercom0 0
30+
#define UART_SERCOM_INDEX_sercom1 1
31+
#define UART_SERCOM_INDEX_sercom2 2
32+
#define UART_SERCOM_INDEX_sercom3 3
33+
#define UART_SERCOM_INDEX_sercom4 4
34+
#define UART_SERCOM_INDEX_sercom5 5
35+
#if defined(SERCOM6)
36+
#define UART_SERCOM_INDEX_sercom6 6
37+
#endif
38+
#if defined(SERCOM7)
39+
#define UART_SERCOM_INDEX_sercom7 7
40+
#endif
41+
42+
#define UART_SERCOM_INDEX(token) UART_SERCOM_INDEX_##token
43+
#define UART_SERCOM_HANDLER_FROM_INDEX(idx) \
44+
UART_SERCOM_HANDLER_FROM_INDEX_2(idx)
45+
#define UART_SERCOM_HANDLER_FROM_INDEX_2(idx) SERCOM##idx##_Handler
46+
#define UART_SERCOM_HANDLER_FROM_TOKEN(token) \
47+
UART_SERCOM_HANDLER_FROM_INDEX(UART_SERCOM_INDEX(token))
48+
49+
#define UART_SERCOM_HANDLER0_FROM_INDEX(idx) \
50+
UART_SERCOM_HANDLER0_FROM_INDEX_2(idx)
51+
#define UART_SERCOM_HANDLER0_FROM_INDEX_2(idx) SERCOM##idx##_0_Handler
52+
#define UART_SERCOM_HANDLER1_FROM_INDEX(idx) \
53+
UART_SERCOM_HANDLER1_FROM_INDEX_2(idx)
54+
#define UART_SERCOM_HANDLER1_FROM_INDEX_2(idx) SERCOM##idx##_1_Handler
55+
#define UART_SERCOM_HANDLER2_FROM_INDEX(idx) \
56+
UART_SERCOM_HANDLER2_FROM_INDEX_2(idx)
57+
#define UART_SERCOM_HANDLER2_FROM_INDEX_2(idx) SERCOM##idx##_2_Handler
58+
#define UART_SERCOM_HANDLER3_FROM_INDEX(idx) \
59+
UART_SERCOM_HANDLER3_FROM_INDEX_2(idx)
60+
#define UART_SERCOM_HANDLER3_FROM_INDEX_2(idx) SERCOM##idx##_3_Handler
61+
62+
#define UART_SERCOM_HANDLER0_FROM_TOKEN(token) \
63+
UART_SERCOM_HANDLER0_FROM_INDEX(UART_SERCOM_INDEX(token))
64+
#define UART_SERCOM_HANDLER1_FROM_TOKEN(token) \
65+
UART_SERCOM_HANDLER1_FROM_INDEX(UART_SERCOM_INDEX(token))
66+
#define UART_SERCOM_HANDLER2_FROM_TOKEN(token) \
67+
UART_SERCOM_HANDLER2_FROM_INDEX(UART_SERCOM_INDEX(token))
68+
#define UART_SERCOM_HANDLER3_FROM_TOKEN(token) \
69+
UART_SERCOM_HANDLER3_FROM_INDEX(UART_SERCOM_INDEX(token))
70+
2771
Uart::Uart(SERCOM *_s, uint8_t _pinRX, uint8_t _pinTX, SercomRXPad _padRX, SercomUartTXPad _padTX) :
2872
Uart(_s, _pinRX, _pinTX, _padRX, _padTX, NO_RTS_PIN, NO_CTS_PIN)
2973
{
@@ -371,3 +415,195 @@ SercomParityMode Uart::extractParity(uint16_t config)
371415
return SERCOM_ODD_PARITY;
372416
}
373417
}
418+
419+
#if defined(PERIPH_SERIAL) && !defined(UART_VARIANT_OWNS_SERIAL)
420+
Uart Serial(&PERIPH_SERIAL, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX,
421+
PAD_SERIAL_TX);
422+
423+
#ifndef SERIAL_IT_HANDLER
424+
#define SERIAL_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL)
425+
#endif
426+
void SERIAL_IT_HANDLER()
427+
{
428+
Serial.IrqHandler();
429+
}
430+
431+
#ifdef FAMILY_SAMD5X
432+
#ifndef SERIAL_IT_HANDLER_0
433+
#define SERIAL_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL)
434+
#define SERIAL_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL)
435+
#define SERIAL_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL)
436+
#define SERIAL_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL)
437+
#endif
438+
void SERIAL_IT_HANDLER_0() { Serial.IrqHandler(); }
439+
void SERIAL_IT_HANDLER_1() { Serial.IrqHandler(); }
440+
void SERIAL_IT_HANDLER_2() { Serial.IrqHandler(); }
441+
void SERIAL_IT_HANDLER_3() { Serial.IrqHandler(); }
442+
#endif
443+
#endif
444+
445+
#if defined(PERIPH_SERIAL_UART) && !defined(UART_VARIANT_OWNS_SERIAL_UART)
446+
Uart SerialUART(&PERIPH_SERIAL_UART, PIN_SERIAL_UART_RX, PIN_SERIAL_UART_TX,
447+
PAD_SERIAL_UART_RX, PAD_SERIAL_UART_TX);
448+
449+
#ifndef SERIAL_UART_IT_HANDLER
450+
#define SERIAL_UART_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL_UART)
451+
#endif
452+
#ifndef FAMILY_SAMD5X
453+
void SERIAL_UART_IT_HANDLER()
454+
{
455+
SerialUART.IrqHandler();
456+
}
457+
#else
458+
#ifndef SERIAL_UART_IT_HANDLER_0
459+
#define SERIAL_UART_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL_UART)
460+
#define SERIAL_UART_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL_UART)
461+
#define SERIAL_UART_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL_UART)
462+
#define SERIAL_UART_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL_UART)
463+
#endif
464+
void SERIAL_UART_IT_HANDLER_0() { SerialUART.IrqHandler(); }
465+
void SERIAL_UART_IT_HANDLER_1() { SerialUART.IrqHandler(); }
466+
void SERIAL_UART_IT_HANDLER_2() { SerialUART.IrqHandler(); }
467+
void SERIAL_UART_IT_HANDLER_3() { SerialUART.IrqHandler(); }
468+
#endif
469+
#endif
470+
471+
#if defined(PERIPH_SERIAL1) && !defined(UART_VARIANT_OWNS_SERIAL1)
472+
#ifdef PIN_SERIAL1_RTS
473+
Uart Serial1(&PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX,
474+
PAD_SERIAL1_TX, PIN_SERIAL1_RTS, PIN_SERIAL1_CTS);
475+
#else
476+
Uart Serial1(&PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX,
477+
PAD_SERIAL1_TX);
478+
#endif
479+
480+
#ifndef SERIAL1_IT_HANDLER
481+
#define SERIAL1_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL1)
482+
#endif
483+
#ifndef FAMILY_SAMD5X
484+
void SERIAL1_IT_HANDLER()
485+
{
486+
Serial1.IrqHandler();
487+
}
488+
#else
489+
#ifndef SERIAL1_IT_HANDLER_0
490+
#define SERIAL1_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL1)
491+
#define SERIAL1_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL1)
492+
#define SERIAL1_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL1)
493+
#define SERIAL1_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL1)
494+
#endif
495+
void SERIAL1_IT_HANDLER_0() { Serial1.IrqHandler(); }
496+
void SERIAL1_IT_HANDLER_1() { Serial1.IrqHandler(); }
497+
void SERIAL1_IT_HANDLER_2() { Serial1.IrqHandler(); }
498+
void SERIAL1_IT_HANDLER_3() { Serial1.IrqHandler(); }
499+
#endif
500+
#endif
501+
502+
#if defined(PERIPH_SERIAL2) && !defined(UART_VARIANT_OWNS_SERIAL2)
503+
#ifdef PIN_SERIAL2_RTS
504+
Uart Serial2(&PERIPH_SERIAL2, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX,
505+
PAD_SERIAL2_TX, PIN_SERIAL2_RTS, PIN_SERIAL2_CTS);
506+
#else
507+
Uart Serial2(&PERIPH_SERIAL2, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX,
508+
PAD_SERIAL2_TX);
509+
#endif
510+
511+
#ifndef SERIAL2_IT_HANDLER
512+
#define SERIAL2_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL2)
513+
#endif
514+
#ifndef FAMILY_SAMD5X
515+
void SERIAL2_IT_HANDLER()
516+
{
517+
Serial2.IrqHandler();
518+
}
519+
#else
520+
#ifndef SERIAL2_IT_HANDLER_0
521+
#define SERIAL2_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL2)
522+
#define SERIAL2_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL2)
523+
#define SERIAL2_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL2)
524+
#define SERIAL2_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL2)
525+
#endif
526+
void SERIAL2_IT_HANDLER_0() { Serial2.IrqHandler(); }
527+
void SERIAL2_IT_HANDLER_1() { Serial2.IrqHandler(); }
528+
void SERIAL2_IT_HANDLER_2() { Serial2.IrqHandler(); }
529+
void SERIAL2_IT_HANDLER_3() { Serial2.IrqHandler(); }
530+
#endif
531+
#endif
532+
533+
#if defined(PERIPH_SERIAL3) && !defined(UART_VARIANT_OWNS_SERIAL3)
534+
Uart Serial3(&PERIPH_SERIAL3, PIN_SERIAL3_RX, PIN_SERIAL3_TX, PAD_SERIAL3_RX,
535+
PAD_SERIAL3_TX);
536+
537+
#ifndef SERIAL3_IT_HANDLER
538+
#define SERIAL3_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL3)
539+
#endif
540+
#ifndef FAMILY_SAMD5X
541+
void SERIAL3_IT_HANDLER()
542+
{
543+
Serial3.IrqHandler();
544+
}
545+
#else
546+
#ifndef SERIAL3_IT_HANDLER_0
547+
#define SERIAL3_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL3)
548+
#define SERIAL3_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL3)
549+
#define SERIAL3_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL3)
550+
#define SERIAL3_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL3)
551+
#endif
552+
void SERIAL3_IT_HANDLER_0() { Serial3.IrqHandler(); }
553+
void SERIAL3_IT_HANDLER_1() { Serial3.IrqHandler(); }
554+
void SERIAL3_IT_HANDLER_2() { Serial3.IrqHandler(); }
555+
void SERIAL3_IT_HANDLER_3() { Serial3.IrqHandler(); }
556+
#endif
557+
#endif
558+
559+
#if defined(PERIPH_SERIAL4) && !defined(UART_VARIANT_OWNS_SERIAL4)
560+
Uart Serial4(&PERIPH_SERIAL4, PIN_SERIAL4_RX, PIN_SERIAL4_TX, PAD_SERIAL4_RX,
561+
PAD_SERIAL4_TX);
562+
563+
#ifndef SERIAL4_IT_HANDLER
564+
#define SERIAL4_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL4)
565+
#endif
566+
#ifndef FAMILY_SAMD5X
567+
void SERIAL4_IT_HANDLER()
568+
{
569+
Serial4.IrqHandler();
570+
}
571+
#else
572+
#ifndef SERIAL4_IT_HANDLER_0
573+
#define SERIAL4_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL4)
574+
#define SERIAL4_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL4)
575+
#define SERIAL4_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL4)
576+
#define SERIAL4_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL4)
577+
#endif
578+
void SERIAL4_IT_HANDLER_0() { Serial4.IrqHandler(); }
579+
void SERIAL4_IT_HANDLER_1() { Serial4.IrqHandler(); }
580+
void SERIAL4_IT_HANDLER_2() { Serial4.IrqHandler(); }
581+
void SERIAL4_IT_HANDLER_3() { Serial4.IrqHandler(); }
582+
#endif
583+
#endif
584+
585+
#if defined(PERIPH_SERIAL5) && !defined(UART_VARIANT_OWNS_SERIAL5)
586+
Uart Serial5(&PERIPH_SERIAL5, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX,
587+
PAD_SERIAL_TX);
588+
589+
#ifndef SERIAL5_IT_HANDLER
590+
#define SERIAL5_IT_HANDLER UART_SERCOM_HANDLER_FROM_TOKEN(PERIPH_SERIAL5)
591+
#endif
592+
void SERIAL5_IT_HANDLER()
593+
{
594+
Serial5.IrqHandler();
595+
}
596+
597+
#ifdef FAMILY_SAMD5X
598+
#ifndef SERIAL5_IT_HANDLER_0
599+
#define SERIAL5_IT_HANDLER_0 UART_SERCOM_HANDLER0_FROM_TOKEN(PERIPH_SERIAL5)
600+
#define SERIAL5_IT_HANDLER_1 UART_SERCOM_HANDLER1_FROM_TOKEN(PERIPH_SERIAL5)
601+
#define SERIAL5_IT_HANDLER_2 UART_SERCOM_HANDLER2_FROM_TOKEN(PERIPH_SERIAL5)
602+
#define SERIAL5_IT_HANDLER_3 UART_SERCOM_HANDLER3_FROM_TOKEN(PERIPH_SERIAL5)
603+
#endif
604+
void SERIAL5_IT_HANDLER_0() { Serial5.IrqHandler(); }
605+
void SERIAL5_IT_HANDLER_1() { Serial5.IrqHandler(); }
606+
void SERIAL5_IT_HANDLER_2() { Serial5.IrqHandler(); }
607+
void SERIAL5_IT_HANDLER_3() { Serial5.IrqHandler(); }
608+
#endif
609+
#endif

variants/arduino_mzero/variant.cpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -203,15 +203,3 @@ SERCOM sercom2( SERCOM2 ) ;
203203
SERCOM sercom3( SERCOM3 ) ;
204204
SERCOM sercom4( SERCOM4 ) ;
205205
SERCOM sercom5( SERCOM5 ) ;
206-
207-
Uart Serial1( &PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
208-
Uart Serial( &PERIPH_SERIAL, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX, PAD_SERIAL_TX ) ;
209-
void SERIAL1_IT_HANDLER()
210-
{
211-
Serial1.IrqHandler();
212-
}
213-
214-
void SERIAL_IT_HANDLER()
215-
{
216-
Serial.IrqHandler();
217-
}

variants/arduino_mzero/variant.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,13 @@ static const uint8_t DAC0 = PIN_DAC0;
115115
#define PAD_SERIAL_TX (UART_TX_PAD_2)
116116
#define PAD_SERIAL_RX (SERCOM_RX_PAD_3)
117117
#define PERIPH_SERIAL sercom5
118-
#define SERIAL_IT_HANDLER SERCOM5_Handler
119118

120119
// Serial1
121120
#define PIN_SERIAL1_RX (0ul)
122121
#define PIN_SERIAL1_TX (1ul)
123122
#define PAD_SERIAL1_TX (UART_TX_PAD_2)
124123
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_3)
125124
#define PERIPH_SERIAL1 sercom0
126-
#define SERIAL1_IT_HANDLER SERCOM0_Handler
127125

128126
/*
129127
* SPI Interfaces

variants/arduino_zero/variant.cpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -212,16 +212,3 @@ SERCOM sercom2( SERCOM2 ) ;
212212
SERCOM sercom3( SERCOM3 ) ;
213213
SERCOM sercom4( SERCOM4 ) ;
214214
SERCOM sercom5( SERCOM5 ) ;
215-
216-
Uart Serial1( &PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
217-
Uart Serial5( &PERIPH_SERIAL5, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX, PAD_SERIAL_TX ) ;
218-
void SERIAL1_IT_HANDLER()
219-
{
220-
Serial1.IrqHandler();
221-
}
222-
223-
void SERIAL5_IT_HANDLER()
224-
{
225-
Serial5.IrqHandler();
226-
}
227-

variants/arduino_zero/variant.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,13 @@ static const uint8_t ATN = PIN_ATN;
122122
#define PAD_SERIAL_TX (UART_TX_PAD_2)
123123
#define PAD_SERIAL_RX (SERCOM_RX_PAD_3)
124124
#define PERIPH_SERIAL5 sercom5
125-
#define SERIAL5_IT_HANDLER SERCOM5_Handler
126125

127126
// Serial1
128127
#define PIN_SERIAL1_RX (0ul)
129128
#define PIN_SERIAL1_TX (1ul)
130129
#define PAD_SERIAL1_TX (UART_TX_PAD_2)
131130
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_3)
132131
#define PERIPH_SERIAL1 sercom0
133-
#define SERIAL1_IT_HANDLER SERCOM0_Handler
134132

135133
/*
136134
* SPI Interfaces

variants/blm_badge/variant.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,3 @@ SERCOM sercom0( SERCOM0 ) ;
8585
SERCOM sercom1( SERCOM1 ) ;
8686
SERCOM sercom2( SERCOM2 ) ;
8787
SERCOM sercom3( SERCOM3 ) ;
88-
89-
Uart Serial1( &PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
90-
91-
void SERIAL1_IT_HANDLER()
92-
{
93-
Serial1.IrqHandler();
94-
}
95-

variants/blm_badge/variant.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ static const uint8_t DAC0 = PIN_DAC0;
119119
#define PIN_SERIAL1_TX (2ul) // captouch pad
120120
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
121121
#define PERIPH_SERIAL1 sercom0
122-
#define SERIAL1_IT_HANDLER SERCOM0_Handler
123122

124123
/*
125124
* SPI Interfaces

variants/circuitplay/variant.cpp

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ const PinDescription g_APinDescription[]=
6161
{ PORTA, 11, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel19, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // A8 / Light Sensor
6262
{ PORTA, 9, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER|PIN_ATTR_ANALOG), ADC_Channel17, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // A9 / Thermistor
6363
{ PORTA, 4, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_ANALOG), ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A10 Proximity
64-
64+
6565
// GPIO 25 / IR Transmit
6666
{ PORTA, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM4_CH1, TC4_CH1, EXTERNAL_INT_7 }, // GPIO D25 - IR Transmitter
6767
// GPIO 26 / IR Remote in
@@ -89,7 +89,7 @@ const PinDescription g_APinDescription[]=
8989

9090

9191
// 36..38 - USB
92-
// --------------------
92+
// --------------------
9393
{ PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // GPIO 29 - Host USB (not used)
9494
{ PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
9595
{ PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
@@ -111,11 +111,3 @@ SERCOM sercom2( SERCOM2 ) ;
111111
SERCOM sercom3( SERCOM3 ) ;
112112
SERCOM sercom4( SERCOM4 ) ;
113113
SERCOM sercom5( SERCOM5 ) ;
114-
115-
Uart Serial1( &PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
116-
117-
void SERIAL1_IT_HANDLER()
118-
{
119-
Serial1.IrqHandler();
120-
}
121-

variants/circuitplay/variant.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,6 @@ extern Uart Serial1;
252252
#define PAD_SERIAL1_TX (UART_TX_PAD_0)
253253
#define PAD_SERIAL1_RX (SERCOM_RX_PAD_1)
254254
#define PERIPH_SERIAL1 sercom4
255-
#define SERIAL1_IT_HANDLER SERCOM4_Handler
256255
#endif // __cplusplus
257256

258257

variants/crickit_m0/variant.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ const PinDescription g_APinDescription[]=
4545
{ PORTA, 27, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 },
4646

4747
// D11 External NeoPixel
48-
{ PORTA, 20, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 },
48+
{ PORTA, 20, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER_ALT), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 },
4949

5050
// D12 IRQ
51-
{ PORTA, 28, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 },
51+
{ PORTA, 28, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 },
5252

5353
// 13 (LED)
54-
{ PORTB, 22, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Yellow LED next to USB
54+
{ PORTB, 22, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // Yellow LED next to USB
5555

5656
// A0-A8 - Analog signal pins
5757
// A0 is duplicated since we mark it starting at analog1, so might as well!
@@ -102,11 +102,3 @@ SERCOM sercom2( SERCOM2 ) ;
102102
SERCOM sercom3( SERCOM3 ) ;
103103
SERCOM sercom4( SERCOM4 ) ;
104104
SERCOM sercom5( SERCOM5 ) ;
105-
106-
Uart Serial1( &PERIPH_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
107-
108-
void SERIAL1_IT_HANDLER()
109-
{
110-
Serial1.IrqHandler();
111-
}
112-

0 commit comments

Comments
 (0)