Skip to content
Snippets Groups Projects
Commit 3c9072fb authored by Thibaut VIARD's avatar Thibaut VIARD Committed by Cristian Maglie
Browse files

Adding some forgotten validation projects

parent 13d4fabb
No related branches found
No related tags found
No related merge requests found
Showing
with 1954 additions and 219 deletions
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<InterfaceName>SWD</InterfaceName> <InterfaceName>SWD</InterfaceName>
</ToolOptions> </ToolOptions>
<ToolType>com.atmel.avrdbg.tool.edbg</ToolType> <ToolType>com.atmel.avrdbg.tool.edbg</ToolType>
<ToolNumber>ATML2320021800000003</ToolNumber> <ToolNumber>ATML2320021800000007</ToolNumber>
<ToolName>EDBG</ToolName> <ToolName>EDBG</ToolName>
</com_atmel_avrdbg_tool_edbg> </com_atmel_avrdbg_tool_edbg>
<preserveEEPROM>true</preserveEEPROM> <preserveEEPROM>true</preserveEEPROM>
...@@ -66,132 +66,174 @@ ...@@ -66,132 +66,174 @@
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings> <ToolchainSettings>
<ArmGccCpp> <ArmGccCpp>
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex> <armgcc.common.outputfiles.hex>False</armgcc.common.outputfiles.hex>
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss> <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep> <armgcc.common.outputfiles.eep>False</armgcc.common.outputfiles.eep>
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin> <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec> <armgcc.common.outputfiles.srec>False</armgcc.common.outputfiles.srec>
<armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>False</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned> <armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>False</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcc.compiler.symbols.DefSymbols><ListValues> <armgcc.compiler.symbols.DefSymbols>
<Value>F_CPU=48000000</Value> <ListValues>
<Value>NDEBUG</Value> <Value>F_CPU=48000000</Value>
</ListValues></armgcc.compiler.symbols.DefSymbols> <Value>NDEBUG</Value>
<armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath> </ListValues>
<armgcc.compiler.directories.IncludePaths><ListValues><Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value><Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value><Value>../../../../arduino</Value><Value>../../../../arduino/USB</Value><Value>../../../../../variants/arduino_zero</Value><Value>../../../../../libraries/SPI</Value><Value>../../../../../libraries/Wire</Value></ListValues></armgcc.compiler.directories.IncludePaths> </armgcc.compiler.symbols.DefSymbols>
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath>
<armgcc.compiler.optimization.PrepareDataForGarbageCollection>False</armgcc.compiler.optimization.PrepareDataForGarbageCollection> <armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings> <ListValues>
<armgcc.compiler.miscellaneous.OtherFlags>False</armgcc.compiler.miscellaneous.OtherFlags> <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>False</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned> <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<armgcccpp.compiler.symbols.DefSymbols><ListValues> <Value>../../../../arduino</Value>
<Value>F_CPU=48000000</Value> <Value>../../../../arduino/USB</Value>
<Value>NDEBUG</Value> <Value>../../../../../variants/arduino_zero</Value>
</ListValues></armgcccpp.compiler.symbols.DefSymbols> <Value>../../../../../libraries/SPI</Value>
<armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath> <Value>../../../../../libraries/Wire</Value>
<armgcccpp.compiler.directories.IncludePaths><ListValues><Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value><Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value><Value>../../../../arduino</Value><Value>../../../../arduino/USB</Value><Value>../../../../../variants/arduino_zero</Value><Value>../../../../../libraries/SPI</Value><Value>../../../../../libraries/Wire</Value></ListValues></armgcccpp.compiler.directories.IncludePaths> </ListValues>
<armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection> </armgcc.compiler.directories.IncludePaths>
<armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>False</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection> <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings> <armgcc.compiler.optimization.PrepareDataForGarbageCollection>False</armgcc.compiler.optimization.PrepareDataForGarbageCollection>
<armgcccpp.linker.general.UseNewlibNano>False</armgcccpp.linker.general.UseNewlibNano> <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcccpp.linker.libraries.Libraries><ListValues><Value>libm</Value></ListValues></armgcccpp.linker.libraries.Libraries> <armgcc.compiler.miscellaneous.OtherFlags>False</armgcc.compiler.miscellaneous.OtherFlags>
<armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections> <armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>False</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcccpp.linker.memorysettings.ExternalRAM>False</armgcccpp.linker.memorysettings.ExternalRAM> <armgcccpp.compiler.symbols.DefSymbols>
<armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_without_bootloader.ld</armgcccpp.linker.miscellaneous.LinkerFlags> <ListValues>
<armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath> <Value>F_CPU=48000000</Value>
<armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level> <Value>NDEBUG</Value>
<armgcccpp.compiler.optimization.level>Optimize for size (-Os)</armgcccpp.compiler.optimization.level> </ListValues>
<armgcccpp.linker.libraries.LibrarySearchPaths><ListValues><Value>../cmsis/linkerScripts</Value></ListValues></armgcccpp.linker.libraries.LibrarySearchPaths> </armgcccpp.compiler.symbols.DefSymbols>
<armgcccpp.preprocessingassembler.general.IncludePaths><ListValues><Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value><Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value><Value>../../../../arduino</Value><Value>../../../../arduino/USB</Value><Value>../../../../../variants/arduino_zero</Value><Value>../../../../../libraries/SPI</Value><Value>../../../../../libraries/Wire</Value></ListValues></armgcccpp.preprocessingassembler.general.IncludePaths> <armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath>
</ArmGccCpp> <armgcccpp.compiler.directories.IncludePaths>
<ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<Value>../../../../arduino</Value>
<Value>../../../../arduino/USB</Value>
<Value>../../../../../variants/arduino_zero</Value>
<Value>../../../../../libraries/SPI</Value>
<Value>../../../../../libraries/Wire</Value>
</ListValues>
</armgcccpp.compiler.directories.IncludePaths>
<armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>False</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>
<armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings>
<armgcccpp.linker.general.UseNewlibNano>False</armgcccpp.linker.general.UseNewlibNano>
<armgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</armgcccpp.linker.libraries.Libraries>
<armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections>
<armgcccpp.linker.memorysettings.ExternalRAM>False</armgcccpp.linker.memorysettings.ExternalRAM>
<armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_without_bootloader.ld</armgcccpp.linker.miscellaneous.LinkerFlags>
<armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath>
<armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>
<armgcccpp.compiler.optimization.level>Optimize for size (-Os)</armgcccpp.compiler.optimization.level>
<armgcccpp.linker.libraries.LibrarySearchPaths>
<ListValues>
<Value>../cmsis/linkerScripts</Value>
</ListValues>
</armgcccpp.linker.libraries.LibrarySearchPaths>
<armgcccpp.preprocessingassembler.general.IncludePaths>
<ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<Value>../../../../arduino</Value>
<Value>../../../../arduino/USB</Value>
<Value>../../../../../variants/arduino_zero</Value>
<Value>../../../../../libraries/SPI</Value>
<Value>../../../../../libraries/Wire</Value>
</ListValues>
</armgcccpp.preprocessingassembler.general.IncludePaths>
</ArmGccCpp>
</ToolchainSettings> </ToolchainSettings>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings> <ToolchainSettings>
<ArmGccCpp> <ArmGccCpp>
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex> <armgcc.common.outputfiles.hex>False</armgcc.common.outputfiles.hex>
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss> <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep> <armgcc.common.outputfiles.eep>False</armgcc.common.outputfiles.eep>
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin> <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec> <armgcc.common.outputfiles.srec>False</armgcc.common.outputfiles.srec>
<armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned> <armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcc.compiler.symbols.DefSymbols> <armgcc.compiler.symbols.DefSymbols>
<ListValues> <ListValues>
<Value>F_CPU=48000000</Value> <Value>F_CPU=48000000</Value>
<Value>DEBUG</Value> <Value>DEBUG</Value>
</ListValues> </ListValues>
</armgcc.compiler.symbols.DefSymbols> </armgcc.compiler.symbols.DefSymbols>
<armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath> <armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath>
<armgcc.compiler.directories.IncludePaths> <armgcc.compiler.directories.IncludePaths>
<ListValues> <ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<Value>../../../../arduino</Value> <Value>../../../../arduino</Value>
<Value>../../../../arduino/USB</Value> <Value>../../../../arduino/USB</Value>
<Value>../../../../../variants/arduino_zero</Value> <Value>../../../../../variants/arduino_zero</Value>
<Value>../../../../../libraries/SPI</Value> <Value>../../../../../libraries/SPI</Value>
<Value>../../../../../libraries/Wire</Value> <Value>../../../../../libraries/Wire</Value>
</ListValues> </ListValues>
</armgcc.compiler.directories.IncludePaths> </armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection> <armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection>
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel> <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings> <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcc.compiler.miscellaneous.OtherFlags>-std=c99 -fno-common</armgcc.compiler.miscellaneous.OtherFlags> <armgcc.compiler.miscellaneous.OtherFlags>-std=c99 -fno-common</armgcc.compiler.miscellaneous.OtherFlags>
<armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned> <armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcccpp.compiler.symbols.DefSymbols> <armgcccpp.compiler.symbols.DefSymbols>
<ListValues> <ListValues>
<Value>F_CPU=48000000</Value> <Value>F_CPU=48000000</Value>
<Value>DEBUG</Value> <Value>DEBUG</Value>
<Value>USB_VID=0x2341</Value> <Value>USB_VID=0x2341</Value>
<Value>USB_PID=0x004d</Value> <Value>USB_PID=0x004d</Value>
</ListValues> </ListValues>
</armgcccpp.compiler.symbols.DefSymbols> </armgcccpp.compiler.symbols.DefSymbols>
<armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath> <armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath>
<armgcccpp.compiler.directories.IncludePaths> <armgcccpp.compiler.directories.IncludePaths>
<ListValues> <ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<Value>../../../../arduino</Value> <Value>../../../../arduino</Value>
<Value>../../../../arduino/USB</Value> <Value>../../../../arduino/USB</Value>
<Value>../../../../../variants/arduino_zero</Value> <Value>../../../../../variants/arduino_zero</Value>
<Value>../../../../../libraries/SPI</Value> <Value>../../../../../libraries/SPI</Value>
<Value>../../../../../libraries/Wire</Value> <Value>../../../../../libraries/Wire</Value>
</ListValues> </ListValues>
</armgcccpp.compiler.directories.IncludePaths> </armgcccpp.compiler.directories.IncludePaths>
<armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level> <armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level>
<armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection> <armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>
<armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel> <armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel>
<armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings> <armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings>
<armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98 -fno-common</armgcccpp.compiler.miscellaneous.OtherFlags> <armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98 -fno-common</armgcccpp.compiler.miscellaneous.OtherFlags>
<armgcccpp.linker.general.UseNewlibNano>True</armgcccpp.linker.general.UseNewlibNano> <armgcccpp.linker.general.UseNewlibNano>True</armgcccpp.linker.general.UseNewlibNano>
<armgcccpp.linker.libraries.Libraries> <armgcccpp.linker.libraries.Libraries>
<ListValues> <ListValues>
<Value>libm</Value> <Value>libm</Value>
</ListValues> </ListValues>
</armgcccpp.linker.libraries.Libraries> </armgcccpp.linker.libraries.Libraries>
<armgcccpp.linker.libraries.LibrarySearchPaths> <armgcccpp.linker.libraries.LibrarySearchPaths>
<ListValues> <ListValues>
<Value>../../../../../variants/arduino_zero/linker_scripts/gcc</Value> <Value>../../../../../variants/arduino_zero/linker_scripts/gcc</Value>
</ListValues> </ListValues>
</armgcccpp.linker.libraries.LibrarySearchPaths> </armgcccpp.linker.libraries.LibrarySearchPaths>
<armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections> <armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections>
<armgcccpp.linker.memorysettings.ExternalRAM /> <armgcccpp.linker.memorysettings.ExternalRAM />
<armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_without_bootloader.ld</armgcccpp.linker.miscellaneous.LinkerFlags> <armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_without_bootloader.ld</armgcccpp.linker.miscellaneous.LinkerFlags>
<armgcccpp.assembler.general.IncludePaths> <armgcccpp.assembler.general.IncludePaths>
<ListValues> <ListValues>
<Value>../../../arduino</Value> <Value>../../../arduino</Value>
</ListValues> </ListValues>
</armgcccpp.assembler.general.IncludePaths> </armgcccpp.assembler.general.IncludePaths>
<armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel> <armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel>
<armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath> <armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath>
<armgcccpp.preprocessingassembler.general.IncludePaths> <armgcccpp.preprocessingassembler.general.IncludePaths>
<ListValues> <ListValues>
<Value>../../../arduino</Value> <Value>../../../arduino</Value>
</ListValues> </ListValues>
</armgcccpp.preprocessingassembler.general.IncludePaths> </armgcccpp.preprocessingassembler.general.IncludePaths>
<armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel> <armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel>
</ArmGccCpp> </ArmGccCpp>
</ToolchainSettings> </ToolchainSettings>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
......
...@@ -23,7 +23,7 @@ static int fadeAmount = 5; // how many points to fade the LED by ...@@ -23,7 +23,7 @@ static int fadeAmount = 5; // how many points to fade the LED by
void setup( void ) void setup( void )
{ {
for ( int i=4 ; i < 14 ; i++ ) for ( int i=3 ; i < 14 ; i++ )
{ {
pinMode( i, OUTPUT ) ; pinMode( i, OUTPUT ) ;
} }
...@@ -34,7 +34,7 @@ void setup( void ) ...@@ -34,7 +34,7 @@ void setup( void )
SERIAL_PORT_MONITOR.println( brightness ) ; SERIAL_PORT_MONITOR.println( brightness ) ;
*/ */
} }
/*
void loop( void ) void loop( void )
{ {
int i ; int i ;
...@@ -57,4 +57,4 @@ void loop( void ) ...@@ -57,4 +57,4 @@ void loop( void )
// wait for 30 milliseconds to see the dimming effect // wait for 30 milliseconds to see the dimming effect
delay( 30 ) ; delay( 30 ) ;
} }
*/

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "test", "test.cppproj", "{B3F859AD-E162-4C2F-9684-EAC6932FEC80}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Release|ARM = Release|ARM
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Debug|ARM.ActiveCfg = Debug|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Debug|ARM.Build.0 = Debug|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Release|ARM.ActiveCfg = Release|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Release|ARM.Build.0 = Release|ARM
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
This diff is collapsed.
/*
Copyright (c) 2014 Arduino. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "Arduino.h"
volatile uint32_t t_start=0 ;
volatile uint32_t t_end=0 ;
volatile uint32_t t_delta=0 ;
#define NUM_SAMPLES (256ul)
void setup( void )
{
int adc_value[NUM_SAMPLES] ;
SERIAL_PORT_MONITOR.begin( 115200 ) ; // Output to EDBG Virtual COM Port
SERIAL_PORT_MONITOR.print( "Analog pins: \r\n" ) ;
t_start=millis() ;
for ( uint32_t i = 0 ; i < NUM_SAMPLES ; i++ )
{
adc_value[i] = analogRead( A1 ) ;
}
t_end=millis() ;
t_delta=t_end-t_start ;
SERIAL_PORT_MONITOR.print( t_delta, DEC ) ;
SERIAL_PORT_MONITOR.println() ;
}
void loop( void )
{
}
...@@ -53,14 +53,15 @@ ...@@ -53,14 +53,15 @@
<com_atmel_avrdbg_tool_edbg> <com_atmel_avrdbg_tool_edbg>
<ToolOptions> <ToolOptions>
<InterfaceProperties> <InterfaceProperties>
<SwdClock>4000000</SwdClock> <SwdClock>2000000</SwdClock>
</InterfaceProperties> </InterfaceProperties>
<InterfaceName>SWD</InterfaceName> <InterfaceName>SWD</InterfaceName>
</ToolOptions> </ToolOptions>
<ToolType>com.atmel.avrdbg.tool.edbg</ToolType> <ToolType>com.atmel.avrdbg.tool.edbg</ToolType>
<ToolNumber>ATML2320021800000003</ToolNumber> <ToolNumber>ATML2320021800000007</ToolNumber>
<ToolName>EDBG</ToolName> <ToolName>EDBG</ToolName>
</com_atmel_avrdbg_tool_edbg> </com_atmel_avrdbg_tool_edbg>
<preserveEEPROM>true</preserveEEPROM>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings> <ToolchainSettings>
...@@ -89,12 +90,12 @@ ...@@ -89,12 +90,12 @@
<Value>../../../../../libraries/Wire</Value> <Value>../../../../../libraries/Wire</Value>
</ListValues> </ListValues>
</armgcc.compiler.directories.IncludePaths> </armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection> <armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection>
<armgcc.compiler.optimization.EnableLongCalls>False</armgcc.compiler.optimization.EnableLongCalls> <armgcc.compiler.optimization.EnableLongCalls>False</armgcc.compiler.optimization.EnableLongCalls>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings> <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcc.compiler.miscellaneous.OtherFlags>-march=armv6-m</armgcc.compiler.miscellaneous.OtherFlags> <armgcc.compiler.miscellaneous.OtherFlags>-march=armv6-m</armgcc.compiler.miscellaneous.OtherFlags>
<armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>False</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcccpp.compiler.symbols.DefSymbols> <armgcccpp.compiler.symbols.DefSymbols>
<ListValues> <ListValues>
<Value>F_CPU=48000000L</Value> <Value>F_CPU=48000000L</Value>
...@@ -113,12 +114,12 @@ ...@@ -113,12 +114,12 @@
<Value>../../../../../libraries/Wire</Value> <Value>../../../../../libraries/Wire</Value>
</ListValues> </ListValues>
</armgcccpp.compiler.directories.IncludePaths> </armgcccpp.compiler.directories.IncludePaths>
<armgcccpp.compiler.optimization.level>Optimize for size (-Os)</armgcccpp.compiler.optimization.level>
<armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection> <armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>
<armgcccpp.compiler.optimization.EnableLongCalls>False</armgcccpp.compiler.optimization.EnableLongCalls> <armgcccpp.compiler.optimization.EnableLongCalls>False</armgcccpp.compiler.optimization.EnableLongCalls>
<armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings> <armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings>
<armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98 -march=armv6-m</armgcccpp.compiler.miscellaneous.OtherFlags> <armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98 -march=armv6-m</armgcccpp.compiler.miscellaneous.OtherFlags>
<armgcccpp.linker.general.UseNewlibNano>False</armgcccpp.linker.general.UseNewlibNano>
<armgcccpp.linker.libraries.Libraries> <armgcccpp.linker.libraries.Libraries>
<ListValues> <ListValues>
<Value>libm</Value> <Value>libm</Value>
...@@ -131,10 +132,8 @@ ...@@ -131,10 +132,8 @@
</armgcccpp.linker.libraries.LibrarySearchPaths> </armgcccpp.linker.libraries.LibrarySearchPaths>
<armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections> <armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections>
<armgcccpp.linker.memorysettings.ExternalRAM>False</armgcccpp.linker.memorysettings.ExternalRAM> <armgcccpp.linker.memorysettings.ExternalRAM>False</armgcccpp.linker.memorysettings.ExternalRAM>
<armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_with_bootloader.ld -march=armv6-m</armgcccpp.linker.miscellaneous.LinkerFlags> <armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_without_bootloader.ld -march=armv6-m</armgcccpp.linker.miscellaneous.LinkerFlags>
<armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath> <armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath>
<armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>
<armgcccpp.compiler.optimization.level>Optimize for size (-Os)</armgcccpp.compiler.optimization.level>
<armgcccpp.preprocessingassembler.general.IncludePaths> <armgcccpp.preprocessingassembler.general.IncludePaths>
<ListValues> <ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
...@@ -152,93 +151,93 @@ ...@@ -152,93 +151,93 @@
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings> <ToolchainSettings>
<ArmGccCpp> <ArmGccCpp>
<armgcc.common.outputfiles.hex>False</armgcc.common.outputfiles.hex> <armgcc.common.outputfiles.hex>False</armgcc.common.outputfiles.hex>
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss> <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
<armgcc.common.outputfiles.eep>False</armgcc.common.outputfiles.eep> <armgcc.common.outputfiles.eep>False</armgcc.common.outputfiles.eep>
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin> <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
<armgcc.common.outputfiles.srec>False</armgcc.common.outputfiles.srec> <armgcc.common.outputfiles.srec>False</armgcc.common.outputfiles.srec>
<armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned> <armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcc.compiler.symbols.DefSymbols> <armgcc.compiler.symbols.DefSymbols>
<ListValues> <ListValues>
<Value>F_CPU=48000000L</Value> <Value>F_CPU=48000000L</Value>
<Value>DEBUG</Value> <Value>DEBUG</Value>
</ListValues> </ListValues>
</armgcc.compiler.symbols.DefSymbols> </armgcc.compiler.symbols.DefSymbols>
<armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath> <armgcc.compiler.directories.DefaultIncludePath>False</armgcc.compiler.directories.DefaultIncludePath>
<armgcc.compiler.directories.IncludePaths> <armgcc.compiler.directories.IncludePaths>
<ListValues> <ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<Value>../../../../arduino</Value> <Value>../../../../arduino</Value>
<Value>../../../../arduino/USB</Value> <Value>../../../../arduino/USB</Value>
<Value>../../../../../variants/arduino_zero</Value> <Value>../../../../../variants/arduino_zero</Value>
<Value>../../../../../libraries/SPI</Value> <Value>../../../../../libraries/SPI</Value>
<Value>../../../../../libraries/Wire</Value> <Value>../../../../../libraries/Wire</Value>
</ListValues> </ListValues>
</armgcc.compiler.directories.IncludePaths> </armgcc.compiler.directories.IncludePaths>
<armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level> <armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level>
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection> <armgcc.compiler.optimization.PrepareDataForGarbageCollection>True</armgcc.compiler.optimization.PrepareDataForGarbageCollection>
<armgcc.compiler.optimization.EnableLongCalls>False</armgcc.compiler.optimization.EnableLongCalls> <armgcc.compiler.optimization.EnableLongCalls>False</armgcc.compiler.optimization.EnableLongCalls>
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel> <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings> <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
<armgcc.compiler.miscellaneous.OtherFlags>-march=armv6-m</armgcc.compiler.miscellaneous.OtherFlags> <armgcc.compiler.miscellaneous.OtherFlags>-march=armv6-m</armgcc.compiler.miscellaneous.OtherFlags>
<armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned> <armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</armgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<armgcccpp.compiler.symbols.DefSymbols> <armgcccpp.compiler.symbols.DefSymbols>
<ListValues> <ListValues>
<Value>F_CPU=48000000L</Value> <Value>F_CPU=48000000L</Value>
<Value>DEBUG</Value> <Value>DEBUG</Value>
<Value>USB_VID=0x2341</Value> <Value>USB_VID=0x2341</Value>
<Value>USB_PID=0x004d</Value> <Value>USB_PID=0x004d</Value>
</ListValues> </ListValues>
</armgcccpp.compiler.symbols.DefSymbols> </armgcccpp.compiler.symbols.DefSymbols>
<armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath> <armgcccpp.compiler.directories.DefaultIncludePath>False</armgcccpp.compiler.directories.DefaultIncludePath>
<armgcccpp.compiler.directories.IncludePaths> <armgcccpp.compiler.directories.IncludePaths>
<ListValues> <ListValues>
<Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value> <Value>../../../../../../../tools/CMSIS/Device/ATMEL</Value>
<Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value> <Value>../../../../../../../tools/CMSIS/CMSIS/Include</Value>
<Value>../../../../arduino</Value> <Value>../../../../arduino</Value>
<Value>../../../../arduino/USB</Value> <Value>../../../../arduino/USB</Value>
<Value>../../../../../variants/arduino_zero</Value> <Value>../../../../../variants/arduino_zero</Value>
<Value>../../../../../libraries/SPI</Value> <Value>../../../../../libraries/SPI</Value>
<Value>../../../../../libraries/Wire</Value> <Value>../../../../../libraries/Wire</Value>
</ListValues> </ListValues>
</armgcccpp.compiler.directories.IncludePaths> </armgcccpp.compiler.directories.IncludePaths>
<armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level> <armgcccpp.compiler.optimization.level>Optimize (-O1)</armgcccpp.compiler.optimization.level>
<armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection> <armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareFunctionsForGarbageCollection>
<armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection> <armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>True</armgcccpp.compiler.optimization.PrepareDataForGarbageCollection>
<armgcccpp.compiler.optimization.EnableLongCalls>False</armgcccpp.compiler.optimization.EnableLongCalls> <armgcccpp.compiler.optimization.EnableLongCalls>False</armgcccpp.compiler.optimization.EnableLongCalls>
<armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel> <armgcccpp.compiler.optimization.DebugLevel>Maximum (-g3)</armgcccpp.compiler.optimization.DebugLevel>
<armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings> <armgcccpp.compiler.warnings.AllWarnings>True</armgcccpp.compiler.warnings.AllWarnings>
<armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98 -march=armv6-m</armgcccpp.compiler.miscellaneous.OtherFlags> <armgcccpp.compiler.miscellaneous.OtherFlags>-std=c++98 -march=armv6-m</armgcccpp.compiler.miscellaneous.OtherFlags>
<armgcccpp.linker.general.UseNewlibNano>True</armgcccpp.linker.general.UseNewlibNano> <armgcccpp.linker.general.UseNewlibNano>True</armgcccpp.linker.general.UseNewlibNano>
<armgcccpp.linker.libraries.Libraries> <armgcccpp.linker.libraries.Libraries>
<ListValues> <ListValues>
<Value>libm</Value> <Value>libm</Value>
</ListValues> </ListValues>
</armgcccpp.linker.libraries.Libraries> </armgcccpp.linker.libraries.Libraries>
<armgcccpp.linker.libraries.LibrarySearchPaths> <armgcccpp.linker.libraries.LibrarySearchPaths>
<ListValues> <ListValues>
<Value>../../../../../variants/arduino_zero/linker_scripts/gcc</Value> <Value>../../../../../variants/arduino_zero/linker_scripts/gcc</Value>
</ListValues> </ListValues>
</armgcccpp.linker.libraries.LibrarySearchPaths> </armgcccpp.linker.libraries.LibrarySearchPaths>
<armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections> <armgcccpp.linker.optimization.GarbageCollectUnusedSections>True</armgcccpp.linker.optimization.GarbageCollectUnusedSections>
<armgcccpp.linker.memorysettings.ExternalRAM /> <armgcccpp.linker.memorysettings.ExternalRAM />
<armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_with_bootloader.ld -march=armv6-m -save-temps</armgcccpp.linker.miscellaneous.LinkerFlags> <armgcccpp.linker.miscellaneous.LinkerFlags>--specs=nosys.specs -Tflash_without_bootloader.ld -march=armv6-m -save-temps</armgcccpp.linker.miscellaneous.LinkerFlags>
<armgcccpp.assembler.general.IncludePaths> <armgcccpp.assembler.general.IncludePaths>
<ListValues> <ListValues>
<Value>../../../arduino</Value> <Value>../../../arduino</Value>
</ListValues> </ListValues>
</armgcccpp.assembler.general.IncludePaths> </armgcccpp.assembler.general.IncludePaths>
<armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel> <armgcccpp.assembler.debugging.DebugLevel>Default (-g)</armgcccpp.assembler.debugging.DebugLevel>
<armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath> <armgcccpp.preprocessingassembler.general.DefaultIncludePath>False</armgcccpp.preprocessingassembler.general.DefaultIncludePath>
<armgcccpp.preprocessingassembler.general.IncludePaths> <armgcccpp.preprocessingassembler.general.IncludePaths>
<ListValues> <ListValues>
<Value>../../../arduino</Value> <Value>../../../arduino</Value>
</ListValues> </ListValues>
</armgcccpp.preprocessingassembler.general.IncludePaths> </armgcccpp.preprocessingassembler.general.IncludePaths>
<armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel> <armgcccpp.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcccpp.preprocessingassembler.debugging.DebugLevel>
</ArmGccCpp> </ArmGccCpp>
</ToolchainSettings> </ToolchainSettings>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
......

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "test", "test.cppproj", "{B3F859AD-E162-4C2F-9684-EAC6932FEC80}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Release|ARM = Release|ARM
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Debug|ARM.ActiveCfg = Debug|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Debug|ARM.Build.0 = Debug|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Release|ARM.ActiveCfg = Release|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Release|ARM.Build.0 = Release|ARM
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
This diff is collapsed.
/*
Copyright (c) 2014 Arduino. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "Arduino.h"
void delay_1121(unsigned int us);
void delay_1678(unsigned int us);
#define DM1(x) delayMicroseconds(x)
float loopTime = 0.0;
float cumulativeError = 0.0;
#define LOOPS 10000
void detectLoopTime() {
Serial.flush();
unsigned long start = micros();
for (register uint16_t i = 0; i < LOOPS; i++) {
__asm__ volatile ("");
}
unsigned long end = micros();
loopTime = ((float)(end - start));
Serial.println("Loop time us = " + String(loopTime, 5));
Serial.flush();
start = micros();
for (register uint16_t i = 0; i < LOOPS; i++) {
asm volatile ("nop");
}
end = micros();
float nopTime = ((float)(end - start - loopTime)) / ((float)(LOOPS)); // us
Serial.println(" NOP = " + String(nopTime, 5));
}
//static inline void delay1us() __attribute__((always_inline, unused));
//static inline void delay1us() {
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//asm volatile ("nop");
//}
//#define D1US() delay1us()
//#define D4US() D1US();D1US();D1US();D1US();
//#define D20US() D4US();D4US();D4US();D4US();D4US();
//#define D100US() D20US();D20US();D20US();D20US();D20US();
#define ConstantTest(x) { \
Serial.flush(); \
unsigned long start = micros(); \
for (int i = 0; i < LOOPS; i++) { \
DM1(x); \
} \
unsigned long end = micros(); \
float delta = ((float)(end - start - loopTime)); \
delta /= (float)(LOOPS); \
Serial.print(String(delta, 5)); \
cumulativeError += abs(delta-x); \
}
void GenericTest(unsigned int d) {
Serial.flush();
unsigned long start = micros();
for (int i = 0; i < LOOPS; i++) {
DM1(d);
}
unsigned long end = micros();
float delta = ((float)(end - start - loopTime));
delta /= (float)(LOOPS);
Serial.print(String(delta, 5));
cumulativeError += abs(delta-d);
}
void VolatileTest(volatile unsigned int d) {
Serial.flush();
unsigned long start = micros();
for (int i = 0; i < LOOPS; i++) {
DM1(d);
}
unsigned long end = micros();
float delta = ((float)(end - start - loopTime));
delta /= (float)(LOOPS);
Serial.print(String(delta, 5));
cumulativeError += abs(delta-d);
}
#define TEST(x) { \
if (x < 10) Serial.print(" "); \
Serial.print(x); \
Serial.print("uS\t"); \
ConstantTest(x); \
Serial.print(" \t"); \
GenericTest(x); \
Serial.print(" \t"); \
VolatileTest(x); \
Serial.println(); \
}
void setup() {
Serial.begin(115200);
detectLoopTime();
TEST(1);
TEST(2);
TEST(3);
TEST(4);
TEST(5);
TEST(10);
TEST(0);
Serial.println(cumulativeError);
}
void loop() { }

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "libarduinocore", "libarduinocore.cppproj", "{B3F859AD-E162-4C2F-9684-EAC6932FEC80}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Release|ARM = Release|ARM
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Debug|ARM.ActiveCfg = Debug|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Debug|ARM.Build.0 = Debug|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Release|ARM.ActiveCfg = Release|ARM
{B3F859AD-E162-4C2F-9684-EAC6932FEC80}.Release|ARM.Build.0 = Release|ARM
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment