diff options
Diffstat (limited to 'wirish')
| -rw-r--r-- | wirish/rules.mk | 2 | ||||
| -rw-r--r-- | wirish/wirish_shift.cpp | 59 | 
2 files changed, 29 insertions, 32 deletions
diff --git a/wirish/rules.mk b/wirish/rules.mk index 5e00a5f..0b0b82c 100644 --- a/wirish/rules.mk +++ b/wirish/rules.mk @@ -24,6 +24,7 @@ cppSRCS_$(d) := boards.cpp  cppSRCS_$(d) += cxxabi-compat.cpp  cppSRCS_$(d) +=	wirish_digital.cpp  cppSRCS_$(d) +=	wirish_time.cpp +cppSRCS_$(d) +=	wirish_shift.cpp  cppSRCS_$(d) += $(MCU_SERIES)/boards_setup.cpp  cppSRCS_$(d) += $(MCU_SERIES)/wirish_digital.cpp  cppSRCS_$(d) += $(WIRISH_BOARD_PATH)/board.cpp @@ -34,7 +35,6 @@ cppSRCS_$(d) += $(WIRISH_BOARD_PATH)/board.cpp  #                 HardwareSPI.cpp		 \  # 		HardwareTimer.cpp	 \  #                 usb_serial.cpp		 \ -# 		wirish_shift.cpp	 \  # 		wirish_analog.cpp	 \  # 		pwm.cpp 		 \  # 		ext_interrupts.cpp diff --git a/wirish/wirish_shift.cpp b/wirish/wirish_shift.cpp index 0f24f59..a032d50 100644 --- a/wirish/wirish_shift.cpp +++ b/wirish/wirish_shift.cpp @@ -1,40 +1,37 @@ -/* - * wiring_shift.c - shiftOut() function - * Part of Arduino - http://www.arduino.cc/ +/****************************************************************************** + * The MIT License   * - * Copyright (c) 2005-2006 David A. Mellis + * Copyright (c) 2012 LeafLabs, LLC.   * - * 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. + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions:   * - * 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. + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software.   * - * 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.c 248 2007-02-03 15:36:30Z mellis $ - */ + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + *****************************************************************************/  #include <wirish/wirish.h> -void shiftOut(uint8 dataPin, uint8 clockPin, uint8 bitOrder, uint8 val) { -    int 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); +void shiftOut(uint8 dataPin, uint8 clockPin, uint8 bitOrder, uint8 value) { +    digitalWrite(clockPin, LOW); +    for (int i = 0; i < 8; i++) { +        int bit = bitOrder == LSBFIRST ? i : (7 - i); +        digitalWrite(dataPin, (value >> bit) & 0x1); +        togglePin(clockPin); +        togglePin(clockPin);      }  }  | 
