template

Dependencies:   4DGL-uLCD-SE EthernetInterface NTPClient SDFileSystem mbed-rtos mbed wave_player

Fork of 2036lab7_template by jim hamblen

Committer:
ssong86
Date:
Mon Feb 01 06:41:04 2016 +0000
Revision:
1:2a0dea19d2ba
template

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ssong86 1:2a0dea19d2ba 1 #include "mbed.h"
ssong86 1:2a0dea19d2ba 2
ssong86 1:2a0dea19d2ba 3 //Setup a new class for a Shiftbrite RGB LED module
ssong86 1:2a0dea19d2ba 4 class Shiftbrite
ssong86 1:2a0dea19d2ba 5 {
ssong86 1:2a0dea19d2ba 6 public:
ssong86 1:2a0dea19d2ba 7 Shiftbrite(PinName pin_e, PinName pin_l, PinName pin_do, PinName pin_di, PinName pin_clk);
ssong86 1:2a0dea19d2ba 8 void write(int red, int green, int blue);
ssong86 1:2a0dea19d2ba 9
ssong86 1:2a0dea19d2ba 10 private:
ssong86 1:2a0dea19d2ba 11 //class sets up the pins
ssong86 1:2a0dea19d2ba 12 DigitalOut _pin_e;
ssong86 1:2a0dea19d2ba 13 DigitalOut _pin_l;
ssong86 1:2a0dea19d2ba 14 SPI _spi;
ssong86 1:2a0dea19d2ba 15 };
ssong86 1:2a0dea19d2ba 16
ssong86 1:2a0dea19d2ba 17 Shiftbrite::Shiftbrite(PinName pin_e, PinName pin_l, PinName pin_do, PinName pin_di, PinName pin_clk)
ssong86 1:2a0dea19d2ba 18 : _pin_e(pin_e), _pin_l(pin_l), _spi(pin_do, pin_di, pin_clk)
ssong86 1:2a0dea19d2ba 19 {
ssong86 1:2a0dea19d2ba 20 _spi.format(16,0);
ssong86 1:2a0dea19d2ba 21 _spi.frequency(500000);
ssong86 1:2a0dea19d2ba 22 }
ssong86 1:2a0dea19d2ba 23
ssong86 1:2a0dea19d2ba 24 void Shiftbrite::write(int red, int green, int blue)
ssong86 1:2a0dea19d2ba 25 {
ssong86 1:2a0dea19d2ba 26 unsigned int low_color=0;
ssong86 1:2a0dea19d2ba 27 unsigned int high_color=0;
ssong86 1:2a0dea19d2ba 28 high_color=(blue<<4)|((red&0x3C0)>>6);
ssong86 1:2a0dea19d2ba 29 low_color=(((red&0x3F)<<10)|(green));
ssong86 1:2a0dea19d2ba 30 _spi.write(high_color);
ssong86 1:2a0dea19d2ba 31 _spi.write(low_color);
ssong86 1:2a0dea19d2ba 32 _pin_l = 1;
ssong86 1:2a0dea19d2ba 33 }