1
+ /*
2
+ Copyright (c) 2014-2015 Arduino LLC. All right reserved.
3
+
4
+ This library is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU Lesser General Public
6
+ License as published by the Free Software Foundation; either
7
+ version 2.1 of the License, or (at your option) any later version.
8
+
9
+ This library is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
+ See the GNU Lesser General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Lesser General Public
15
+ License along with this library; if not, write to the Free Software
16
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+
19
+ #include " variant.h"
20
+
21
+ /*
22
+ * Pins descriptions
23
+ * TCC0 IOSET4
24
+ * TCC1 IOSET2
25
+ * TCC2 IOSET1
26
+ * TCC3 IOSET1
27
+ * TCC4 IOSET1
28
+ */
29
+
30
+ const PinDescription g_APinDescription[]=
31
+ {
32
+ // 0..8 - Raspberry pi Digital & AD pins
33
+ { PORTB, 8 , PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel2, TC4_CH0, TC4_CH0, EXTERNAL_INT_8 }, // 0/RPI_D0/RPI_A0
34
+ { PORTB, 9 , PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel3, TC4_CH1, TC4_CH1, EXTERNAL_INT_9 }, // 1/RPI_D1/RPI_A1
35
+ { PORTA, 4 , PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel4, TC0_CH0, TC0_CH0, EXTERNAL_INT_4 }, // 2/RPI_D2/RPI_A2
36
+ { PORTA, 6 , PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel6, TC1_CH0, TC1_CH0, EXTERNAL_INT_6 },
37
+ { PORTA, 7 , PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel7, TC1_CH1, TC1_CH1, EXTERNAL_INT_7 },
38
+ { PORTB, 4 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 },
39
+ { PORTB, 5 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
40
+ { PORTB, 6 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel8, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
41
+ { PORTB, 7 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel9, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
42
+
43
+ // 9..10 DAC1 DAC2
44
+ { PORTA, 5 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // DAC1
45
+ { PORTA, 2 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // DAC2
46
+
47
+ // 11 IRQ
48
+ { PORTC, 20 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 },
49
+
50
+ // 12 BUZZER_CTR
51
+ { PORTD, 11 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC0_CH4, TCC0_CH4, EXTERNAL_INT_6 },
52
+
53
+ // 13 (LED)
54
+ { PORTA, 15 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC2_CH1, TCC2_CH1, EXTERNAL_INT_15 },
55
+
56
+ // 14..27 FPC Digital & AD pins
57
+ { PORTA, 14 , PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC3_CH0, TC3_CH0, EXTERNAL_INT_14 }, // FPC_D0
58
+ { PORTA, 20 , PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH0, TCC0_CH0, EXTERNAL_INT_4 },
59
+ { PORTB, 15 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC4_CH1, TCC4_CH1, EXTERNAL_INT_15 },
60
+ { PORTB, 16 , PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC6_CH0, TC6_CH0, EXTERNAL_INT_0 },
61
+ { PORTB, 17 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC3_CH1, TCC3_CH1, EXTERNAL_INT_1 },
62
+ { PORTB, 29 , PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC1_CH5, TCC1_CH5, EXTERNAL_INT_15 },
63
+ { PORTB, 31 , PIO_DIGITAL, PIN_ATTR_PWM_E, No_ADC_Channel, TC0_CH1, TC0_CH1, EXTERNAL_INT_15 },
64
+ { PORTC, 1 , PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // FPC_D7/FPC_A7
65
+ { PORTC, 2 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
66
+ { PORTC, 3 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 },
67
+ { PORTC, 4 , PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH0, TCC0_CH0, EXTERNAL_INT_4},
68
+ { PORTC, 31 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 },
69
+ { PORTD, 0 , PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 },
70
+ { PORTD, 1 , PIO_DIGITAL, PIN_ATTR_ANALOG_ALT, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 },
71
+
72
+ // 28..30 USER_BUTTON
73
+ { PORTC, 26 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // BUTTON_1
74
+ { PORTC, 27 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // BUTTON_2
75
+ { PORTC, 28 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // BUTTON_3
76
+
77
+ // 31..35 SWITCH
78
+ { PORTD, 8 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // SWITCH_X
79
+ { PORTD, 9 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // SWITCH_Y
80
+ { PORTD, 10 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // SWITCH_Z
81
+ { PORTD, 12 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // SWITCH_B
82
+ { PORTD, 20 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // SWITCH_U
83
+
84
+ // 36..38 GCLK
85
+ { PORTB, 12 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC3_CH0, NOT_ON_TIMER, EXTERNAL_INT_12 }, // GCLK6
86
+ { PORTB, 13 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC3_CH1, NOT_ON_TIMER, EXTERNAL_INT_13 }, // GCLK7
87
+ { PORTB, 14 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC4_CH0, NOT_ON_TIMER, EXTERNAL_INT_14 }, // GCLK0
88
+
89
+ // 39 MIC INPUT
90
+ { PORTC, 30 , PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel12, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 }, // MIC_INPUT
91
+
92
+ // 40..41 UART Serial1
93
+ { PORTB, 26 , PIO_SERCOM, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH2, NOT_ON_TIMER, EXTERNAL_INT_12 }, // UART_TX
94
+ { PORTB, 27 , PIO_SERCOM, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM_F), No_ADC_Channel, TCC1_CH3, NOT_ON_TIMER, EXTERNAL_INT_13 }, // UART_RX
95
+
96
+ // 42..44 - USB
97
+ { PORTA, 24 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB_D-
98
+ { PORTA, 25 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB_D+
99
+ { PORTA, 27 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB _HOST_EN
100
+
101
+ // 45..46 I2C Wire2
102
+ { PORTA, 16 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, TCC1_CH1, EXTERNAL_INT_0 }, // SCL
103
+ { PORTA, 17 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, TCC1_CH0, EXTERNAL_INT_1 }, // SDA
104
+
105
+ // 47..50 SPI
106
+ // PB00 PB02 PB03 PB01 (MISO:PAD2, MOSI:PAD0, SCK:PAD1, SS:PAD3)
107
+ { PORTB, 0 , PIO_SERCOM_ALT, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), No_ADC_Channel, TC7_CH0, TC7_CH0, EXTERNAL_INT_0 },
108
+ { PORTB, 2 , PIO_SERCOM_ALT, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), No_ADC_Channel, TC6_CH0, TC6_CH0, EXTERNAL_INT_2 },
109
+ { PORTB, 3 , PIO_SERCOM_ALT, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), No_ADC_Channel, TC6_CH1, TC6_CH1, EXTERNAL_INT_3 },
110
+ { PORTB, 1 , PIO_SERCOM_ALT, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), No_ADC_Channel, TC7_CH1, TC7_CH1, EXTERNAL_INT_1 },
111
+
112
+ // 51..54 I2S
113
+ // PA23 PB28 PA22 PA21 (FS SCK SDI SDO);
114
+ { PORTA, 23 , PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH3, TCC0_CH3, EXTERNAL_INT_7 },
115
+ { PORTB, 28 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
116
+ { PORTA, 22 , PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH2, NOT_ON_TIMER, EXTERNAL_INT_6 },
117
+ { PORTA, 21 , PIO_DIGITAL, PIN_ATTR_PWM_G, No_ADC_Channel, TCC0_CH1, NOT_ON_TIMER, EXTERNAL_INT_5 },
118
+
119
+ // 55..60 QSPI (SCK, CS, IO0, IO1, IO2, IO3)
120
+ { PORTA, 8 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NMI },
121
+ { PORTA, 9 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 },
122
+ { PORTA, 10 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 },
123
+ { PORTA, 11 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 },
124
+ { PORTB, 10 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 },
125
+ { PORTB, 11 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 },
126
+
127
+ // 61..65 SPI2 SD_SPI
128
+ // PC18 PC16 PC17 PC19 PD21(MISO:PAD2, MOSI:PAD0, SCK:PAD1, SS:PAD3; SD_DET)
129
+ { PORTC, 18 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
130
+ { PORTC, 16 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 },
131
+ { PORTC, 17 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 },
132
+ { PORTC, 19 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 },
133
+ { PORTD, 21 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC1_CH1, NOT_ON_TIMER, EXTERNAL_INT_11 },
134
+
135
+ // 66..76 SPI3 LCD_SPI
136
+ // PB8 PB19 PB20 PB21 (MISO PAD2, MOSI PAD3 SCK:PAD1 SS:PAD0)
137
+ { PORTB, 18 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 },
138
+ { PORTB, 19 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 },
139
+ { PORTB, 20 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 },
140
+ { PORTB, 21 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
141
+
142
+ { PORTC, 6 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // LCD_D/C
143
+ { PORTC, 7 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // LCD_RESET
144
+ { PORTC, 5 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // LCD_BACKLIGHT
145
+
146
+ // 4 WIRE LCD TOUCH
147
+ { PORTC, 10 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel10, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // LCD_XL
148
+ { PORTC, 11 , PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // LCD_YU
149
+ { PORTC, 12 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC0_CH2, NOT_ON_TIMER, EXTERNAL_INT_12 }, // LCD_XR
150
+ { PORTC, 13 , PIO_DIGITAL, PIN_ATTR_PWM_F, No_ADC_Channel, TCC0_CH2, NOT_ON_TIMER, EXTERNAL_INT_13 }, // LCD_YD
151
+
152
+ // GYROSCOPE
153
+ // ................................................
154
+ // 77..78 I2C Wire1
155
+ { PORTA, 12 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, TC2_CH0, TC2_CH0, EXTERNAL_INT_12 }, // GYROSCOPE_SCL
156
+ { PORTA, 13 , PIO_SERCOM_ALT, PIN_ATTR_DIGITAL, No_ADC_Channel, TC2_CH1, TC2_CH1, EXTERNAL_INT_13 }, // GYROSCOPE_SDA
157
+
158
+ // 79 GYROSCOPE_INT1
159
+ { PORTC, 21 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 },
160
+
161
+ // ESP32
162
+ // ................................................
163
+ // 80..81
164
+ { PORTA, 18 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // ESP32_CHIP_PU ESP32_DOWMLOAD
165
+ { PORTA, 19 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // ESP32_GPIO0 ESP32_RESET
166
+
167
+ // 82..83 ESP UART Serial2
168
+ { PORTC, 22 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 },
169
+ { PORTC, 23 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 },
170
+
171
+ // 84..87 SPI1 ESP_SPI
172
+ // PC24 PB24 PB25 PC25 (MISO:PAD2, MOSI:PAD0, SCK:PAD1, SS:PAD3)
173
+ { PORTC, 24 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 },
174
+ { PORTB, 24 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 },
175
+ { PORTB, 25 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
176
+ { PORTC, 25 , PIO_SERCOM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 },
177
+
178
+ // 88..90 SWD
179
+ { PORTA, 30 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
180
+ { PORTA, 31 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
181
+ { PORTB, 30 , PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
182
+
183
+ // 91..92 OUTPUT_CTR
184
+ { PORTC, 14 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_14 },
185
+ { PORTC, 15 , PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_15 }
186
+
187
+ } ;
188
+
189
+ const void * g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TCC3, TCC4, TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7 } ;
190
+ const uint32_t GCLK_CLKCTRL_IDs[TCC_INST_NUM+TC_INST_NUM] = { TCC0_GCLK_ID, TCC1_GCLK_ID, TCC2_GCLK_ID, TCC3_GCLK_ID, TCC4_GCLK_ID, TC0_GCLK_ID, TC1_GCLK_ID, TC2_GCLK_ID, TC3_GCLK_ID, TC4_GCLK_ID, TC5_GCLK_ID, TC6_GCLK_ID, TC7_GCLK_ID } ;
191
+
192
+ // Multi-serial objects instantiation
193
+ SERCOM sercom0 ( SERCOM0 ) ;
194
+ SERCOM sercom1 ( SERCOM1 ) ;
195
+ SERCOM sercom2 ( SERCOM2 ) ;
196
+ SERCOM sercom3 ( SERCOM3 ) ;
197
+ SERCOM sercom4 ( SERCOM4 ) ;
198
+ SERCOM sercom5 ( SERCOM5 ) ;
199
+ SERCOM sercom6 ( SERCOM6 ) ;
200
+ SERCOM sercom7 ( SERCOM7 ) ;
201
+
202
+ Uart Serial1 ( &SERCOM_SERIAL1, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
203
+ Uart Serial2 ( &SERCOM_SERIAL2, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX, PAD_SERIAL2_TX ) ;
204
+
205
+ void SERCOM_0_Handler ()
206
+ {
207
+ Serial2.IrqHandler ();
208
+ }
209
+ void SERCOM1_1_Handler ()
210
+ {
211
+ Serial2.IrqHandler ();
212
+ }
213
+ void SERCOM1_2_Handler ()
214
+ {
215
+ Serial2.IrqHandler ();
216
+ }
217
+ void SERCOM1_3_Handler ()
218
+ {
219
+ Serial2.IrqHandler ();
220
+ }
221
+
222
+ void SERCOM2_0_Handler ()
223
+ {
224
+ Serial1.IrqHandler ();
225
+ }
226
+ void SERCOM2_1_Handler ()
227
+ {
228
+ Serial1.IrqHandler ();
229
+ }
230
+ void SERCOM2_2_Handler ()
231
+ {
232
+ Serial1.IrqHandler ();
233
+ }
234
+ void SERCOM2_3_Handler ()
235
+ {
236
+ Serial1.IrqHandler ();
237
+ }
0 commit comments