template
Dependencies: 4DGL-uLCD-SE EthernetInterface NTPClient SDFileSystem mbed-rtos mbed wave_player
Fork of 2036lab7_template by
Shiftbrite.h@1:2a0dea19d2ba, 2016-02-01 (annotated)
- Committer:
- ssong86
- Date:
- Mon Feb 01 06:41:04 2016 +0000
- Revision:
- 1:2a0dea19d2ba
template
Who changed what in which revision?
User | Revision | Line number | New 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 | } |