Ernest Williams / Mbed 2 deprecated Bluetooth

Dependencies:   mbed Motor Servo

Fork of SerialPassthrough_LPC1768 by jim hamblen

Committer:
ewilliams61
Date:
Sat Apr 30 19:47:54 2016 +0000
Revision:
9:c216d7b63f92
Parent:
7:79d0b30fedb4
Final working code for IOT mailbox

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ewilliams61 7:79d0b30fedb4 1 #include "mbed.h"
ewilliams61 7:79d0b30fedb4 2
ewilliams61 7:79d0b30fedb4 3 //Setup a new class for a Shiftbrite RGB LED module
ewilliams61 7:79d0b30fedb4 4 class Shiftbrite
ewilliams61 7:79d0b30fedb4 5 {
ewilliams61 7:79d0b30fedb4 6 public:
ewilliams61 7:79d0b30fedb4 7 Shiftbrite(PinName pin_e, PinName pin_l, PinName pin_do, PinName pin_di, PinName pin_clk);
ewilliams61 7:79d0b30fedb4 8 void write(int red, int green, int blue);
ewilliams61 7:79d0b30fedb4 9
ewilliams61 7:79d0b30fedb4 10 private:
ewilliams61 7:79d0b30fedb4 11 //class sets up the pins
ewilliams61 7:79d0b30fedb4 12 DigitalOut _pin_e;
ewilliams61 7:79d0b30fedb4 13 DigitalOut _pin_l;
ewilliams61 7:79d0b30fedb4 14 SPI _spi;
ewilliams61 7:79d0b30fedb4 15 };
ewilliams61 7:79d0b30fedb4 16
ewilliams61 7:79d0b30fedb4 17 Shiftbrite::Shiftbrite(PinName pin_e, PinName pin_l, PinName pin_do, PinName pin_di, PinName pin_clk)
ewilliams61 7:79d0b30fedb4 18 : _pin_e(pin_e), _pin_l(pin_l), _spi(pin_do, pin_di, pin_clk)
ewilliams61 7:79d0b30fedb4 19 {
ewilliams61 7:79d0b30fedb4 20 _pin_e=0;
ewilliams61 7:79d0b30fedb4 21 _pin_l=0;
ewilliams61 7:79d0b30fedb4 22 }
ewilliams61 7:79d0b30fedb4 23
ewilliams61 7:79d0b30fedb4 24 void Shiftbrite::write(int red, int green, int blue)
ewilliams61 7:79d0b30fedb4 25 {
ewilliams61 7:79d0b30fedb4 26 long colors=0;
ewilliams61 7:79d0b30fedb4 27 long c=00;
ewilliams61 7:79d0b30fedb4 28
ewilliams61 7:79d0b30fedb4 29 red=red*4;
ewilliams61 7:79d0b30fedb4 30 green=green*4;
ewilliams61 7:79d0b30fedb4 31 blue=blue*4;
ewilliams61 7:79d0b30fedb4 32
ewilliams61 7:79d0b30fedb4 33 if(red>1023){
ewilliams61 7:79d0b30fedb4 34 red=1023;
ewilliams61 7:79d0b30fedb4 35 }
ewilliams61 7:79d0b30fedb4 36 if(green>1023){
ewilliams61 7:79d0b30fedb4 37 green=1023;
ewilliams61 7:79d0b30fedb4 38 }
ewilliams61 7:79d0b30fedb4 39 if(blue>1023){
ewilliams61 7:79d0b30fedb4 40 blue=1023;
ewilliams61 7:79d0b30fedb4 41 }
ewilliams61 7:79d0b30fedb4 42 colors=(colors<<2)|(c&3);
ewilliams61 7:79d0b30fedb4 43 colors=(colors<<10)|(blue&1023);
ewilliams61 7:79d0b30fedb4 44 colors=(colors<<10)|(red&1023);
ewilliams61 7:79d0b30fedb4 45 colors=(colors<<10)|(green&1023);
ewilliams61 7:79d0b30fedb4 46
ewilliams61 7:79d0b30fedb4 47 long s1=0xFF000000;
ewilliams61 7:79d0b30fedb4 48 long s2=0xFF0000;
ewilliams61 7:79d0b30fedb4 49 long s3=0xFF00;
ewilliams61 7:79d0b30fedb4 50 long s4=0xFF;
ewilliams61 7:79d0b30fedb4 51
ewilliams61 7:79d0b30fedb4 52 _spi.write((s1&colors)>>24);
ewilliams61 7:79d0b30fedb4 53 _spi.write((s2&colors)>>16);
ewilliams61 7:79d0b30fedb4 54 _spi.write((s3&colors)>>8);
ewilliams61 7:79d0b30fedb4 55 _spi.write(s4&colors);
ewilliams61 7:79d0b30fedb4 56 _pin_l=1;
ewilliams61 7:79d0b30fedb4 57 _pin_l=0;
ewilliams61 7:79d0b30fedb4 58 }