Code for the following project: https://www.instructables.com/id/Ultimate-Hamster-Tracker-Wheel-Featuring-Mbed-C-LC/

Dependencies:   4DGL-uLCD-SE PinDetect mbed

Shiftbrite.h

Committer:
bstrickland9
Date:
2017-04-03
Revision:
0:d0e2fe309777

File content as of revision 0:d0e2fe309777:

#include "mbed.h"

//Setup a new class for a Shiftbrite RGB LED module
class Shiftbrite
{
public:
    Shiftbrite(PinName pin_e, PinName pin_l, PinName pin_do, PinName pin_di, PinName pin_clk);
    void write(int red, int green, int blue);

private:
//class sets up the pins
    DigitalOut _pin_e;
    DigitalOut _pin_l;
    SPI _spi;
};

Shiftbrite::Shiftbrite(PinName pin_e, PinName pin_l, PinName pin_do, PinName pin_di, PinName pin_clk)
    : _pin_e(pin_e), _pin_l(pin_l), _spi(pin_do, pin_di, pin_clk)
{
    _spi.format(16,0);
    _spi.frequency(500000);
    _pin_e=0;
    _pin_l=0;    
}

void Shiftbrite::write(int red, int green, int blue)
{
    _pin_e=0;
    _pin_l=0;
    unsigned int low_color=0;
    unsigned int high_color=0;
    high_color=(blue<<4)|((red&0x3C0)>>6);
    low_color=(((red&0x3F)<<10)|(green));
    _spi.write(high_color);
    _spi.write(low_color);
    _pin_l=1;
    _pin_l=0;
}