Fork me on GitHub
beagleboard.org

BoneScript

shiftOut(dataPin, clockPin, bitOrder, val, [callback])

Note: This doesn't work until BoneScript version 0.2.3

Shift a byte out to a digital I/O pin clocking it with another digital I/O pin.

Arguments

  • dataPin: the pin for the serial data
  • clockPin: the pin for the clock
  • bitOrder: b.MSBFIRST or b.LSBFIRST
  • val: the byte to be written
  • callback: called upon completion

Return value

callback(x)

  • x.err: error status message

Example

//
// Demonstrate shiftOut with a 7 segment display
//

// read in the BoneScript library
var b = require('bonescript');

// define used pins
var sData  = "P9_18";
var sClock = "P9_22";
var sLatch = "P9_17";
var sClear = "P9_15";

// define other global variables
var digit = 0;
var segments = [ 0xC0, 0xF9, 0xA4, 0xB0, 0x99,
                 0x92, 0x82, 0xF8, 0x80, 0x90 ];

// configure pins as outputs
b.pinMode(sData,  b.OUTPUT);
b.pinMode(sClock, b.OUTPUT);
b.pinMode(sLatch, b.OUTPUT);
b.pinMode(sClear, b.OUTPUT);

// initial states
b.digitalWrite(sData,  b.LOW);
b.digitalWrite(sClock, b.LOW);
b.digitalWrite(sLatch, b.LOW);
b.digitalWrite(sClear, b.HIGH);

// call function to start updating the LED shift register
doUpdate();

// function to update the LED shift register
function doUpdate() {
    // shift out the character LED pattern
    b.shiftOut(sData, sClock, b.MSBFIRST, 
        segments[digit], doLatch);

    // update the digit for next time
    digit = (digit + 1) % 10;
}

function doLatch() {
    // latch in the value
    b.digitalWrite(sLatch, b.HIGH, doLatchLow);
}

function doLatchLow() {
    b.digitalWrite(sLatch, b.LOW, scheduleUpdate);
}

function scheduleUpdate() {
    // update again in another 25ms
    setTimeout(doUpdate, 25);
}

Build and execute instructions

  • TBD

See also

Topics

Related functions


Last updated by jkridner on Mon Aug 19 2013 04:22:44 GMT-0000 (UTC).
67