diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h index 5410ce4..ad2d1b7 100644 --- a/cores/arduino/Arduino.h +++ b/cores/arduino/Arduino.h @@ -78,12 +78,9 @@ void noTone(uint8_t _pin); #endif // __cplusplus -// Include board variant -//#include "variant.h" - #include "wiring_digital.h" #include "wiring_analog.h" -//#include "wiring_shift.h" +#include "wiring_shift.h" //#include "WInterrupts.h" #endif // Arduino_h diff --git a/cores/arduino/wiring_private.h b/cores/arduino/wiring_private.h new file mode 100644 index 0000000..41a5d1e --- /dev/null +++ b/cores/arduino/wiring_private.h @@ -0,0 +1,43 @@ +/* + wiring_private.h - Internal header file. + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2005-2006 David A. Mellis + + 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., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ +*/ + +#ifndef WiringPrivate_h +#define WiringPrivate_h + +#include "Arduino.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*voidFuncPtr)(void); + +#ifdef __cplusplus +} // extern "C" +#endif + + +#endif \ No newline at end of file diff --git a/cores/arduino/wiring_shift.c b/cores/arduino/wiring_shift.c new file mode 100644 index 0000000..96052b1 --- /dev/null +++ b/cores/arduino/wiring_shift.c @@ -0,0 +1,31 @@ +#include "wiring_private.h" + +uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { + uint32_t value = 0; + uint8_t i; + + for (i = 0; i < 8; ++i) { + digitalWrite(clockPin, HIGH); + if (bitOrder == LSBFIRST) + value |= digitalRead(dataPin) << i; + else + value |= digitalRead(dataPin) << (7 - i); + digitalWrite(clockPin, LOW); + } + return value; +} + +void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) +{ + uint8_t i; + + for (i = 0; i < 8; i++) { + if (bitOrder == LSBFIRST) + digitalWrite(dataPin, !!(val & (1 << i))); + else + digitalWrite(dataPin, !!(val & (1 << (7 - i)))); + + digitalWrite(clockPin, HIGH); + digitalWrite(clockPin, LOW); + } +} \ No newline at end of file diff --git a/cores/arduino/wiring_shift.h b/cores/arduino/wiring_shift.h new file mode 100644 index 0000000..f8cbf8f --- /dev/null +++ b/cores/arduino/wiring_shift.h @@ -0,0 +1,25 @@ +#ifndef _WIRING_SHIFT_ +#define _WIRING_SHIFT_ + +#include +#include "Arduino.h" + +#ifdef __cplusplus +extern "C"{ +#endif // __cplusplus +/* + * \brief + */ +extern uint8_t shiftIn( uint8_t ulDataPin, uint8_t ulClockPin, uint8_t ulBitOrder ) ; + + +/* + * \brief + */ +extern void shiftOut( uint8_t ulDataPin, uint8_t ulClockPin, uint8_t ulBitOrder, uint8_t ulVal ) ; + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus + +#endif /* _WIRING_SHIFT_ */ \ No newline at end of file diff --git a/platform.txt b/platform.txt index bf7b22b..dded941 100644 --- a/platform.txt +++ b/platform.txt @@ -98,5 +98,5 @@ tools.manual_openocd.program.pattern="{path}{cmd}" -d0 -f {program.config} -c "f tools.kflash.path={runtime.tools.kflash.path}/ tools.kflash.cmd={runtime.tools.kflash.path}/kflash tools.kflash.bootloader.path={runtime.tools.kflash.path}/bootloader.bin -tools.kflash.upload.pattern="{cmd}" -p {serial.port} -l "{bootloader.path}" {build.path}/{build.project_name}.bin -tools.kflash.program.pattern="{cmd}" -p {serial.port} -l "{bootloader.path}" {build.path}/{build.project_name}.bin \ No newline at end of file +tools.kflash.upload.pattern="{cmd}" -p {serial.port} -l "{bootloader.path}" -b 2000000 {build.path}/{build.project_name}.bin +tools.kflash.program.pattern="{cmd}" -p {serial.port} -l "{bootloader.path}" -b 2000000 {build.path}/{build.project_name}.bin \ No newline at end of file