From d9a6408a88dd0755a5d865e5d5da03b1a8a4d0cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20SEMETTE?= <jerome.semette@atmel.com> Date: Fri, 9 May 2014 16:11:33 +0200 Subject: [PATCH] Following modification done in zero project : - Update test.cpp - Add support of wiring_analog.c in AS6 test project - Modify variant for PWM generation on LED (pin 13) --- cores/arduino/validation/build_as6/test.atsuo | Bin 25088 -> 26112 bytes .../arduino/validation/build_as6/test.cppproj | 181 +++++++++--------- cores/arduino/validation/test.cpp | 27 ++- cores/arduino/wiring_analog.c | 21 +- variants/arduino_zero/variant.cpp | 2 +- 5 files changed, 136 insertions(+), 95 deletions(-) diff --git a/cores/arduino/validation/build_as6/test.atsuo b/cores/arduino/validation/build_as6/test.atsuo index 26b524b33b54fad372b5784431c9893881c36c82..3a782617a392448667aa0aa645718027d4129c0f 100644 GIT binary patch delta 3320 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 delta 2058 zcmaJ?eN0nV6o2>G*Os<G3$%QHE0zNFwaik!Uu{L;p{4PQF;P&6k^y$m8b8og=aOY= zqCLs{V@pKiJ~DACZzKLOU72RV#i34T%%W41nW#&qTlhm=Hg;}X7@5oN%X#no&OPVc zbIv{YzQAP?xJV8PggxUZVr73#O-+H9tshxmPlB?ZxS=fzJhIoXkU0#)1ZrWs?2?>8 zl_?IYJBuKsl)+Z6iBsZidRQ{a-PSBbWJ4-Lg4^;G4Ru<JfPRCD733VORGiSJ2FCr& z?~UTyqbIMq-z_kMN6CYr+{?wI>IS$Xityc16)fWOBq8Q3VJA6wq1r{R!!~uJoX{W= zB1@_t5*ggll#*CU7b~%IhH+WXyz-#dsUULng&7I!OyJYH<wS>AOU<}s<j%r#ZKIr- zhip;Umru8X6jDx|j<Od>IN+<|1_<Swz?&eKwkC+IoW!8m5LrE`nbRXmjM(d&xne}I z6b0AIq-T1O1!qz<1X7&z8%%Y=1(^kWsaH9gLMBy|ccaN?YS^CEASX2Yq^LPOOA{mN z>3bC{PT&AtvPI%Ew1hA)W~hZgri@&~d{2NmD=Q|d#Ega|#f7S1ww!!ULHu&2nQ36w zM7%IxqO3HSbAh_&%qX0Yp64hC^yhB{zRf@)4xY9p!Pi+<5VD(~DLVy@&C7sLwg7=P zlVr+!j|2;Rqz3#2Q$&#b^VKX|6KmMcF07UiG&$uY6&<rQ8OdkbPe$ejh!iLZv2%Jl zwt=H8k$7;Mt?<N?1^aBNQi$I}6rZRWMuG8PUCl$^GBqkJhs;-vP%l&?FL0e*)cB3s zqNHKss^Ib2v8c4pzOdZkDp_oiLZtx~9JXvYSCb1r+mhi_nGWuXJUp#@1Y>3UA|2jr zuOi3cfW1g}3L`v?bOvbzNrFrE`AXWU=Mlj(d%c!|?-5)_qC7O0=jiW5!Cm~`L%L7# zAy0bDBV-;U{Rz3|#6#`&aQCBCc#KrwzOkUIJO%f~#Bhw7>J)fTJpw&drJ(i1!5T3I z4%c+UEwK;_lM5<Q2NPl!_{3Hu2UwS;YItjj#p1G**zILJc$OJyVH5+tj((rti>28} zv8=bFyAR%Ul)wkIRaAf#ki)k^5s_xqHd6d8?n3g#zoZRuguxz*jBeqj4dDhAjO)`` zMzgjChTH~2ZqybJT&O(CyM}|VabgU2#H33@W}DASpoluq{W9YKOG|m!<q<Fw8gm2m zt~MCx8IBBPC<7T2l4~YC)#8dZj{Z)6ci-k<y^AZr$sD>e`0ATE4OI`L$$EF>j5W9w z1e-5<UuYg8`wbEuFxFTHSf%i)JrNncl_77GcfC{}IO0w=7-v*5FyyIw*NNF#Pwz^& zWV5sx3xcGV)c@I4tWd0W#vmh<21ng`?tQvra3*sn^jI?BR-qBv^V_BN;v53@IulGR zj03xK9ER%F!$he@>Z=n-qSre(xWm4v)NaM6#AfBKLD+5Foj<_%m=2~N-+so+n3)aC z1N}<Dm9Xx&UQ<`b53Bg&S+vLLU5H~-$3bev_A;<{c@3~F`$4nPsNRe>&H%dUWsbpa z^U=gj%z>C?4ZJEZ;D|r6v8}1;avF64ywgrTLI;N-Wt9<(W(^EgRDpJh9Bw#^r{jgb zIypIrH&+)7F0m@CWj2e&`U-rw+7u&AUk1UJP_X5g?q=K*+W@&a>i7R~{QSp)O&MNg z*kXWo<y`c!+gKZH#T!b6p_^$RaMzGK3)@;naLwnr8;C~Xc`N=NN|0R;X`I*a7eWs* zPoerpoES&K0b`lY++NJHo9PRe%8Mm)t$n<)?k#=lo?lO<zcZHokc-BkBL82DNR)Zg z^;jFJ2bJb1voLnjazIbF!?tDTSpU8w@%OZqY~1O)mD4$@@P8*jduJfn?&E&K=q`h& RQv{(?2IC!eoN)aY|2GeYmID9) diff --git a/cores/arduino/validation/build_as6/test.cppproj b/cores/arduino/validation/build_as6/test.cppproj index fdb1f72b..a2a5d05e 100644 --- a/cores/arduino/validation/build_as6/test.cppproj +++ b/cores/arduino/validation/build_as6/test.cppproj @@ -26,14 +26,14 @@ <BootSegment>2</BootSegment> <eraseonlaunchrule>1</eraseonlaunchrule> <AsfFrameworkConfig> - <framework-data xmlns=""> + <framework-data> <options /> <configurations /> <files /> <documentation help="" /> <offline-documentation help="" /> <dependencies> - <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.17.0" /> + <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.6.0" /> </dependencies> </framework-data> </AsfFrameworkConfig> @@ -53,13 +53,14 @@ <com_atmel_avrdbg_tool_edbg> <ToolOptions> <InterfaceProperties> + <JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession> <SwdClock>4000000</SwdClock> </InterfaceProperties> <InterfaceName>SWD</InterfaceName> </ToolOptions> <ToolType>com.atmel.avrdbg.tool.edbg</ToolType> - <ToolNumber>ATML2320021800000010</ToolNumber> - <ToolName>EDBG</ToolName> + <ToolNumber>ATML2320021800000009</ToolNumber> + <ToolName>XPRO-EDBG</ToolName> </com_atmel_avrdbg_tool_edbg> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> @@ -131,89 +132,87 @@ <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <ToolchainSettings> <ArmGccCpp> - <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex> - <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss> - <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep> - <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin> - <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec> - <armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned> - <armgcc.compiler.symbols.DefSymbols> - <ListValues> - <Value>DEBUG</Value> - </ListValues> - </armgcc.compiler.symbols.DefSymbols> - <armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath> - <armgcc.compiler.directories.IncludePaths> - <ListValues> - <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> - <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> - <Value>../../..</Value> - <Value>../../../USB</Value> - <Value>../../../../../variants/arduino_zero</Value> - <Value>../../../../../libraries/SPI</Value> - <Value>../../../../../libraries/Wire</Value> - </ListValues> - </armgcc.compiler.directories.IncludePaths> - <armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level> - <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection> - <armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection> - <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel> - <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings> - <armgcc.compiler.miscellaneous.OtherFlags>-std=c99</armgcc.compiler.miscellaneous.OtherFlags> - <armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned> - <armgcccpp.compiler.symbols.DefSymbols> - <ListValues> - <Value>DEBUG</Value> - <Value>USB_VID=0x2341</Value> - <Value>USB_PID=0x004d</Value> - </ListValues> - </armgcccpp.compiler.symbols.DefSymbols> - <armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath> - <armgcccpp.compiler.directories.IncludePaths> - <ListValues> - <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> - <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> - <Value>../../..</Value> - <Value>../../../USB</Value> - <Value>../../../../../variants/arduino_zero</Value> - <Value>../../../../../libraries/SPI</Value> - <Value>../../../../../libraries/Wire</Value> - </ListValues> - </armgcccpp.compiler.directories.IncludePaths> - <armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level> - <armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection> - <armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection> - <armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel> - <armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings> - <armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98</armgcccpp.compiler.miscellaneous.OtherFlags> - <armgcccpp.linker.general.UseNewlibNano>True</armgcccpp.linker.general.UseNewlibNano> - <armgcccpp.linker.libraries.Libraries> - <ListValues> - <Value>libm</Value> - </ListValues> - </armgcccpp.linker.libraries.Libraries> - <armgcccpp.linker.libraries.LibrarySearchPaths> - <ListValues> - <Value>../../../../../variants/arduino_zero/linker_scripts/gcc</Value> - </ListValues> - </armgcccpp.linker.libraries.LibrarySearchPaths> - <armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections> - <armgcccpp.linker.memorysettings.ExternalRAM /> - <armgcccpp.linker.miscellaneous.LinkerFlags>-Tflash.ld</armgcccpp.linker.miscellaneous.LinkerFlags> - <armgcccpp.assembler.general.IncludePaths> - <ListValues> - <Value>../../..</Value> - </ListValues> - </armgcccpp.assembler.general.IncludePaths> - <armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel> - <armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath> - <armgcccpp.preprocessingassembler.general.IncludePaths> - <ListValues> - <Value>../../..</Value> - </ListValues> - </armgcccpp.preprocessingassembler.general.IncludePaths> - <armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel> - </ArmGccCpp> + <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex> + <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss> + <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep> + <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin> + <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec> + <armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned> + <armgcc.compiler.symbols.DefSymbols> + <ListValues> + <Value>DEBUG</Value> + </ListValues> + </armgcc.compiler.symbols.DefSymbols> + <armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath> + <armgcc.compiler.directories.IncludePaths> + <ListValues> + <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> + <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> + <Value>../../..</Value> + <Value>../../../USB</Value> + <Value>../../../../../variants/arduino_zero</Value> + <Value>../../../../../libraries/SPI</Value> + <Value>../../../../../libraries/Wire</Value> + </ListValues> + </armgcc.compiler.directories.IncludePaths> + <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection> + <armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection> + <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel> + <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings> + <armgcc.compiler.miscellaneous.OtherFlags>-std=c99</armgcc.compiler.miscellaneous.OtherFlags> + <armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned> + <armgcccpp.compiler.symbols.DefSymbols> + <ListValues> + <Value>DEBUG</Value> + <Value>USB_VID=0x2341</Value> + <Value>USB_PID=0x004d</Value> + </ListValues> + </armgcccpp.compiler.symbols.DefSymbols> + <armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath> + <armgcccpp.compiler.directories.IncludePaths> + <ListValues> + <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> + <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> + <Value>../../..</Value> + <Value>../../../USB</Value> + <Value>../../../../../variants/arduino_zero</Value> + <Value>../../../../../libraries/SPI</Value> + <Value>../../../../../libraries/Wire</Value> + </ListValues> + </armgcccpp.compiler.directories.IncludePaths> + <armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level> + <armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection> + <armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection> + <armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel> + <armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings> + <armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98</armgcccpp.compiler.miscellaneous.OtherFlags> + <armgcccpp.linker.libraries.Libraries> + <ListValues> + <Value>libm</Value> + </ListValues> + </armgcccpp.linker.libraries.Libraries> + <armgcccpp.linker.libraries.LibrarySearchPaths> + <ListValues> + <Value>../../../../../variants/arduino_zero/linker_scripts/gcc</Value> + </ListValues> + </armgcccpp.linker.libraries.LibrarySearchPaths> + <armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections> + <armgcccpp.linker.miscellaneous.LinkerFlags>-Tflash.ld</armgcccpp.linker.miscellaneous.LinkerFlags> + <armgcccpp.linker.memorysettings.ExternalRAM /> + <armgcccpp.assembler.general.IncludePaths> + <ListValues> + <Value>../../..</Value> + </ListValues> + </armgcccpp.assembler.general.IncludePaths> + <armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel> + <armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath> + <armgcccpp.preprocessingassembler.general.IncludePaths> + <ListValues> + <Value>../../..</Value> + </ListValues> + </armgcccpp.preprocessingassembler.general.IncludePaths> + <armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel> +</ArmGccCpp> </ToolchainSettings> </PropertyGroup> <ItemGroup> @@ -391,6 +390,10 @@ <SubType>compile</SubType> <Link>core\wiring.h</Link> </Compile> + <Compile Include="..\..\wiring_analog.c"> + <SubType>compile</SubType> + <Link>core\wiring_analog.c</Link> + </Compile> <Compile Include="..\..\wiring_analog.h"> <SubType>compile</SubType> <Link>core\wiring_analog.h</Link> @@ -461,10 +464,6 @@ <SubType>compile</SubType> <Link>core\WInterrupts.c.disabled</Link> </None> - <None Include="..\..\wiring_analog.c.disabled"> - <SubType>compile</SubType> - <Link>core\wiring_analog.c.disabled</Link> - </None> <None Include="..\..\wiring_digital.c.old"> <SubType>compile</SubType> <Link>core\wiring_digital.c.old</Link> diff --git a/cores/arduino/validation/test.cpp b/cores/arduino/validation/test.cpp index 3c7e0b2e..25e92e69 100644 --- a/cores/arduino/validation/test.cpp +++ b/cores/arduino/validation/test.cpp @@ -61,13 +61,38 @@ static void led_step2( void ) digitalWrite( PIN_LED3, LOW ) ; // set the red LED on } +static void analog_write_step (void) +{ + // test PWM generation on all PWM pins (duty cycle from 0x00 to 0xFF) + for( uint8_t duty_cycle = 0x00;duty_cycle<=0xFF;duty_cycle++) + { + analogWrite(13,duty_cycle); + analogWrite(12,duty_cycle); + analogWrite(11,duty_cycle); + analogWrite(10,duty_cycle); + analogWrite(9,duty_cycle); + analogWrite(8,duty_cycle); + analogWrite(7,duty_cycle); + analogWrite(6,duty_cycle); + analogWrite(5,duty_cycle); + analogWrite(4,duty_cycle); + analogWrite(3,duty_cycle); + analogWrite(2,duty_cycle); + delay( 10 ) ; + } + + +} + void loop( void ) { led_step1() ; delay( 1000 ) ; // wait for a second led_step2() ; delay( 1000 ) ; // wait for a second - + + analog_write_step(); + /* Serial1.write( '-' ) ; // send a char Serial1.write( "test1\n" ) ; // send a string diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c index 0b1f4c9b..7aa3c7f5 100644 --- a/cores/arduino/wiring_analog.c +++ b/cores/arduino/wiring_analog.c @@ -242,12 +242,29 @@ void analogWrite(uint32_t ulPin, uint32_t ulValue) { if ((attr & PIN_ATTR_PWM) == PIN_ATTR_PWM) { + if (g_APinDescription[ulPin].ulPinType == PIO_TIMER) + { // Set selected Pin as TC/TCC Waveform out (PMUX : E ) if(g_APinDescription[ulPin].ulPin <= 15) + { PORT->Group[g_APinDescription[ulPin].ulPort].WRCONFIG.reg = (uint32_t)(PORT_WRCONFIG_WRPINCFG |PORT_WRCONFIG_WRPMUX| 1 << (g_APinDescription[ulPin].ulPin)|(PORT_WRCONFIG_PMUXEN)|(0x4 << PORT_WRCONFIG_PMUX_Pos) ); - else + } else { PORT->Group[g_APinDescription[ulPin].ulPort].WRCONFIG.reg = (uint32_t)(PORT_WRCONFIG_WRPINCFG | PORT_WRCONFIG_WRPMUX| PORT_WRCONFIG_HWSEL| 1 << (g_APinDescription[ulPin].ulPin - 16)|(PORT_WRCONFIG_PMUXEN)|(0x4 << PORT_WRCONFIG_PMUX_Pos) ); - + } + } + + if (g_APinDescription[ulPin].ulPinType == PIO_TIMER_ALT) + { + // Set selected Pin as TC/TCC Waveform out (PMUX : F ) + if(g_APinDescription[ulPin].ulPin <= 15) + { + PORT->Group[g_APinDescription[ulPin].ulPort].WRCONFIG.reg = (uint32_t)(PORT_WRCONFIG_WRPINCFG |PORT_WRCONFIG_WRPMUX| 1 << (g_APinDescription[ulPin].ulPin)|(PORT_WRCONFIG_PMUXEN)|(0x5 << PORT_WRCONFIG_PMUX_Pos) ); + } else { + PORT->Group[g_APinDescription[ulPin].ulPort].WRCONFIG.reg = (uint32_t)(PORT_WRCONFIG_WRPINCFG | PORT_WRCONFIG_WRPMUX| PORT_WRCONFIG_HWSEL| 1 << (g_APinDescription[ulPin].ulPin - 16)|(PORT_WRCONFIG_PMUXEN)|(0x5 << PORT_WRCONFIG_PMUX_Pos) ); + } + } + + switch (g_APinDescription[ulPin].ulTCChannel) { case TC3_CH0 : diff --git a/variants/arduino_zero/variant.cpp b/variants/arduino_zero/variant.cpp index 76c9a386..4b572d6f 100644 --- a/variants/arduino_zero/variant.cpp +++ b/variants/arduino_zero/variant.cpp @@ -107,7 +107,7 @@ const PinDescription g_APinDescription[]= { PORTA, 19, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, TC3_CH1 }, // TC3/WO[1] // 13 (LED) - { PORTA, 17, PIO_PWM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM2_CH1, NOT_ON_TIMER }, // TCC2/WO[1] + { PORTA, 17, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH1, TCC2_CH1 }, // TCC2/WO[1] // 14 (GND) { NOT_A_PORT, 0, PIO_NOT_A_PIN, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER }, -- GitLab