Production Test Program (PTP) for the LPC4088 Experiment Base Board

Dependencies:   EALib I2S LM75B SDFileSystem mbed

TestShiftreg.cpp

Committer:
embeddedartists
Date:
2014-10-01
Revision:
9:eb6086159020
Parent:
2:2f4b7535ceb3

File content as of revision 9:eb6086159020:

/*
 *  Copyright 2013 Embedded Artists AB
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

/******************************************************************************
 * Includes
 *****************************************************************************/

#include "mbed.h"
#include "TestShiftreg.h"

/******************************************************************************
 * Defines and typedefs
 *****************************************************************************/


/******************************************************************************
 * Public Functions
 *****************************************************************************/

TestShiftreg::TestShiftreg(PinName mosi, PinName miso, PinName sclk, PinName cs) :
    _spi(mosi, miso, sclk), _cs(cs) {
        
    _cs = 1; // to get it in a known state
    output(0x00);
}

bool TestShiftreg::runTest() {
    output(0x1);
    wait(0.1);
    output(0x2);
    wait(0.1);
    output(0x4);
    wait(0.1);
    output(0x8);
    wait(0.1);
    output(0x10);
    wait(0.1);
    output(0x20);
    wait(0.1);
    output(0x40);
    wait(0.1);
    output(0x80);
    wait(0.1);
    output(0x40);
    wait(0.1);
    output(0x20);
    wait(0.1);
    output(0x10);
    wait(0.1);
    output(0x8);
    wait(0.1);
    output(0x4);
    wait(0.1);
    output(0x2);
    wait(0.1);
    output(0x1);
    wait(0.1);
    output(0x0);
    return true;
}

void TestShiftreg::output(uint8_t value) {
    _cs = 0;
    _spi.write(value);
    _cs = 1;
}