Skip to content

Commit

Permalink
v1.5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Trusty77 committed May 31, 2019
1 parent fdd5d54 commit 231526d
Show file tree
Hide file tree
Showing 7 changed files with 136 additions and 95 deletions.
4 changes: 2 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This library providest fast digital read and write.

Originaly written by Jan Dolinay, updated by Thierry Paris.

Original sources from Jan available here: https://github.com/jdolinay/Arduino_DIO2
Original sources from Jan available here: https://github.com/jdolinay/Arduino_DIO2 . Article here https://www.codeproject.com/Articles/732646/Fast-digital-I-O-for-Arduino

For more information about this library please visit us at
http://www.locoduino.org/spip.php?article165 in french or
Expand All @@ -13,7 +13,7 @@ http://git.framasoft.org/locoduino.org/DIO2/wikis/home for both french and engli
== License ==

Copyright (c) Jan Dolinay, All right reserved.
Copyright (c) 2016 Locoduino.org. All right reserved.
Copyright (c) 2016-2019 Locoduino.org. All right reserved.
Copyright (c) 2016-2019 Thierry Paris. All right reserved.

This library is free software; you can redistribute it and/or
Expand Down
32 changes: 17 additions & 15 deletions VStudio/DIO2.cpp
Original file line number Diff line number Diff line change
@@ -1,39 +1,41 @@
#define ARDUINO2_MAIN

#include "stdafx.h"
#include "DIO2.hpp"
#include "DIO2.h"
#include "ArduiEmulator.hpp"

void DIO2::DioClass::_pinMode2(uint8_t pin, uint8_t mode)
void pinMode2(uint8_t pin, uint8_t mode)
{
ArduiEmulator::Arduino::_pinMode(pin, mode);
pinMode(pin, mode);
}

void DIO2::DioClass::_digitalWrite2(uint8_t pin, uint8_t val)
void digitalWrite2(uint8_t pin, uint8_t val)
{
ArduiEmulator::Arduino::_digitalWrite(pin, val);
digitalWrite(pin, val);
}

uint8_t DIO2::DioClass::_digitalRead2(uint8_t pin)
uint8_t digitalRead2(uint8_t pin)
{
return ArduiEmulator::Arduino::_digitalRead(pin);
return digitalRead(pin);
}

void DIO2::DioClass::_pinMode2f(GPIO_pin_t pin, uint8_t mode)
void pinMode2f(GPIO_pin_t pin, uint8_t mode)
{
ArduiEmulator::Arduino::_pinMode(_GPIO_to_Arduino_pin(pin), mode);
pinMode(GPIO_to_Arduino_pin(pin), mode);
}

uint8_t DIO2::DioClass::_digitalRead2f(GPIO_pin_t pin)
uint8_t digitalRead2f(GPIO_pin_t pin)
{
return ArduiEmulator::Arduino::_digitalRead(_GPIO_to_Arduino_pin(pin));
return digitalRead(GPIO_to_Arduino_pin(pin));
}

void DIO2::DioClass::_digitalWrite2f(GPIO_pin_t pin, uint8_t value)
void digitalWrite2f(GPIO_pin_t pin, uint8_t value)
{
ArduiEmulator::Arduino::_digitalWrite(_GPIO_to_Arduino_pin(pin), value);
}
digitalWrite(GPIO_to_Arduino_pin(pin), value);
}

int DIO2::DioClass::_GPIO_to_Arduino_pin(GPIO_pin_t inPin)
int GPIO_to_Arduino_pin(GPIO_pin_t inPin)
{
int i;
for (i = 0; i < GPIO_PINS_NUMBER; i++)
Expand All @@ -45,7 +47,7 @@ int DIO2::DioClass::_GPIO_to_Arduino_pin(GPIO_pin_t inPin)
return -1;
}

GPIO_pin_t DIO2::DioClass::_Arduino_to_GPIO_pin(int inPin)
GPIO_pin_t Arduino_to_GPIO_pin(int inPin)
{
return gpio_pins_progmem[inPin];
}
19 changes: 11 additions & 8 deletions VStudio/DIO2.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,23 @@
#define DIO2_H_
//-------------------------------------------------------------------

#include "stdafx.h"

#include "Arduino.h"
//#include "ArduiEmulator.hpp"

#include "../board/mega/pins2_arduino.h"

#define pinMode2(pin, mode) ArduiEmulator::Arduino::_pinMode(DIO2::DioClass::_GPIO_to_Arduino_pin(pin), mode)
#define digitalWrite2(pin, val) ArduiEmulator::Arduino::_digitalWrite(DIO2::DioClass::_GPIO_to_Arduino_pin(pin), val);
#define digitalRead2(pin) ArduiEmulator::Arduino::_digitalRead(DIO2::DioClass::_GPIO_to_Arduino_pin(pin));
extern void pinMode2(uint8_t pin, uint8_t mode);
extern void digitalWrite2(uint8_t pin, uint8_t val);
extern uint8_t digitalRead2(uint8_t pin);

#define pinMode2f(pin, mode) ArduiEmulator::Arduino::_pinMode(DIO2::DioClass::_GPIO_to_Arduino_pin(pin), mode);
#define digitalWrite2f(pin, value) ArduiEmulator::Arduino::_digitalWrite(DIO2::DioClass::_GPIO_to_Arduino_pin(pin), value)
#define digitalRead2f(pin) ArduiEmulator::Arduino::_digitalRead(DIO2::DioClass::_GPIO_to_Arduino_pin(pin));
extern void pinMode2f(GPIO_pin_t pin, uint8_t mode);
extern uint8_t digitalRead2f(GPIO_pin_t pin);
extern void digitalWrite2f(GPIO_pin_t pin, uint8_t value);

#define GPIO_to_Arduino_pin(GPIO_PIN) DIO2::DioClass::_GPIO_to_Arduino_pin(GPIO_PIN)
#define Arduino_to_GPIO_pin(PIN) DIO2::DioClass::_Arduino_to_GPIO_pin(PIN)
extern GPIO_pin_t Arduino_to_GPIO_pin(int aa);
extern int GPIO_to_Arduino_pin(GPIO_pin_t aa);

//-------------------------------------------------------------------
#endif
Expand Down
18 changes: 0 additions & 18 deletions VStudio/DIO2.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,6 @@

#include "DIO2.h"

namespace DIO2
{
public ref class DioClass
{
public:
static void _pinMode2(uint8_t pin, uint8_t mode);
static void _digitalWrite2(uint8_t pin, uint8_t val);
static uint8_t _digitalRead2(uint8_t pin);

static void _pinMode2f(GPIO_pin_t pin, uint8_t mode);
static uint8_t _digitalRead2f(GPIO_pin_t pin);
static void _digitalWrite2f(GPIO_pin_t pin, uint8_t value);

static GPIO_pin_t _Arduino_to_GPIO_pin(int aa);
static int _GPIO_to_Arduino_pin(GPIO_pin_t aa);
};
};

//-------------------------------------------------------------------
#endif
//-------------------------------------------------------------------
129 changes: 90 additions & 39 deletions VStudio/DIO2.vcxproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
Expand All @@ -11,73 +19,136 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{CC4048D1-7AC0-4D3D-98A3-2922D996B5AB}</ProjectGuid>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<Keyword>ManagedCProj</Keyword>
<Keyword>Win32Proj</Keyword>
<RootNamespace>DIO2</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<CLRSupport>true</CLRSupport>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_LIB;VISUALSTUDIO;ARDUINO_AVR_MEGA2560;_DIO2_EXPORTING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(VisualStudioDir)\..\Arduino\ArduiEmulator\ArduiEmulator</AdditionalIncludeDirectories>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(VisualStudioDir)\..\Arduino\ArduiEmulatorWin\ArduiEmulatorLib</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<GenerateDebugInformation>true</GenerateDebugInformation>
<FullProgramDatabaseFile>true</FullProgramDatabaseFile>
</Link>
<Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Lib>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions);VISUALSTUDIO</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(VisualStudioDir)\..\Arduino\ArduiEmulator\ArduiEmulator</AdditionalIncludeDirectories>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(VisualStudioDir)\..\Arduino\ArduiEmulatorWin\ArduiEmulatorLib</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
Expand All @@ -87,26 +158,6 @@
<ItemGroup>
<ClCompile Include="DIO2.cpp" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.dll</HintPath>
</Reference>
<Reference Include="System.Drawing">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Drawing.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Windows.Forms.dll</HintPath>
</Reference>
<Reference Include="System.XML">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.XML.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\ArduiEmulator\ArduiEmulator\ArduiEmulator.vcxproj">
<Project>{2cedff9d-11ac-46b3-92b0-8b43cbccffac}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Text Include="..\readme.txt" />
</ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=DIO2
version=1.5.0
version=1.5.1
author=Thierry Paris - Locoduino
maintainer=Thierry Paris - Locoduino
sentence=Fast digital input/output functions.
Expand Down
Loading

0 comments on commit 231526d

Please sign in to comment.