Aditya Barve / Mbed 2 deprecated image_display

Dependencies:   ADXL345 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "ADXL345.h"
00002 #include "mbed.h"
00003 DigitalOut latch(p15);
00004 DigitalOut enable(p16);
00005 DigitalIn s1(p29);
00006 DigitalIn s2(p30);
00007 //Cycles through different colors on RGB LED
00008 SPI spi(p11, p12, p13);
00009 //Use SPI hardware to write color values to LED driver chip
00010 
00011 PortOut ledport(Port1, 0xFFFFFFFF);
00012 
00013 ADXL345 accelerometer(p5, p6, p7, p8);
00014 //Serial pc(USBTX, USBRX);
00015 
00016 DigitalOut led8(p28);
00017 DigitalOut led7(p27);
00018 DigitalOut led6(p26);
00019 DigitalOut led5(p25);
00020 DigitalOut led4(p24);
00021 DigitalOut led3(p23);
00022 DigitalOut led2(p22);
00023 DigitalOut led1(p21);
00024 
00025 // ------------------------- Zigbee -------------
00026 
00027 Serial pc1(USBTX, USBRX);
00028 const int redcolor[10][8]={
00029 {255 , 250,    0,    0 ,   0,    0,  244,  255},
00030   {251,    0,    0,  219  ,225  ,  0   , 0  ,244},
00031    { 0  ,  0  ,255 , 255,  255 , 255 ,   0 ,   0},
00032     {0 , 222,  255,  254,  254,  255,  242 ,   0},
00033     {0 , 252 , 254 , 254 , 254 , 254 , 255,    0},
00034     {0 , 254  ,254 , 254 , 254 , 254 , 255  ,  0},
00035     {0 , 230  ,255 , 254,  254,  255,  246,    0},
00036     {0  ,  0 , 255 , 255 , 255 , 255,    0,    0},
00037   {244   , 0  ,  0 , 244 , 250  ,  0  ,  0  ,232},
00038   {255 , 238 ,   0 ,   0 ,   0 ,   0 , 227 , 255}
00039 };
00040 
00041 const int greencolor[10][8] = {
00042 
00043   {255,  250 ,   0 ,   0 ,   0 ,   0 , 244 , 255},
00044   {251   , 0  ,  0 , 219  ,217   , 0  ,  0 , 244},
00045    { 0   , 0  ,253 , 254,  245 , 255 ,   0,    0},
00046     {0 , 212 , 246  ,254 , 242 , 244  ,230   , 0},
00047     {0 , 240 , 242 , 254  ,242 , 242 , 249 ,   0},
00048     {0 , 241 , 242 , 254 , 242,  242 , 250,    0},
00049     {0  ,220 , 245 , 255 , 242 , 243,  235 ,   0},
00050     {0   , 0 , 255 , 255 , 243 , 255  ,  0 ,   0},
00051  { 244   , 0  ,  0 , 244  ,242   , 0   , 0 , 232},
00052  { 255 , 238  ,  0 ,   0 ,   0 ,   0 , 228,  255}
00053 };
00054 
00055 const int bluecolor[10][8]= {
00056  {255 , 251    ,0,    0 ,   0 ,   0,  246,  255},
00057   {253  ,  0  ,  0  ,  0 ,   0  ,  0 ,   0 , 247},
00058    { 0  ,  0  ,  0   , 0  ,  0 ,   0 ,   0 ,   0},
00059     {0  ,  0 ,   0  ,  0 ,   0   , 0  ,  0   , 0},
00060     {0  ,  0 ,   0 ,   0 ,   0 ,   0,    0 ,   0},
00061     {0   , 0   , 0   , 0  ,  0  ,  0   , 0  ,  0},
00062     {0  ,  0  ,  0  ,  0  ,  0  ,  0  ,  0 ,   0},
00063     {0   , 0 ,   0  ,  0  ,  0 ,   0   , 0  ,  0},
00064   {247  ,  0  ,  0  ,  0 ,   0  ,  0 ,   0,  237},
00065   {255 , 240  ,  0  ,  0  ,  0 ,   0,  232  ,255}
00066 };
00067 void RGB_LED(int red, int green, int blue)
00068 {
00069     unsigned int low_color=0;
00070     unsigned int high_color=0;
00071     high_color=(blue<<4)|((red&0x3C0)>>6);
00072     low_color=(((red&0x3F)<<10)|(green));
00073     spi.write(high_color);
00074     spi.write(low_color);
00075     latch=1;
00076     latch=0;
00077 }
00078 
00079 
00080 int main()
00081 {
00082     int readings[3] = {0, 0, 0};
00083     int i = 0;
00084     const char text1[50] = "HI";
00085     int len;
00086     char character;
00087     char currentchar = 0;
00088     int LED_MASK = 0xFFFFFFFF;
00089 
00090     int red=0;
00091     int green=0;
00092     int blue=0;
00093     spi.format(16,0);
00094     spi.frequency(500000);
00095     enable=0;
00096     latch=0;
00097 
00098 
00099 
00100     len = 0;
00101     for(int n = 0; text1[n] != '\0'; n++) {
00102         len++;
00103     }
00104     float waitvalue = 0.06/((6*len) + 1);
00105     pc1.printf("text1 = %s\n\r", text1);
00106 //   pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId());
00107     wait(3);
00108 
00109     //Go into standby mode to configure the device.
00110     accelerometer.setPowerControl(0x00);
00111 
00112     //Full resolution, +/-16g, 4mg/LSB.
00113     accelerometer.setDataFormatControl(0x0B);
00114 
00115     //3.2kHz data rate.
00116     accelerometer.setDataRate(ADXL345_3200HZ);
00117 
00118     //Measurement mode.
00119     accelerometer.setPowerControl(0x08);
00120 
00121     while (1) {
00122 
00123         red = 0;
00124         green = 0;
00125         blue = 0;
00126 
00127         accelerometer.getOutput(readings);
00128 
00129         do {
00130             accelerometer.getOutput(readings);
00131             pc1.printf("| 1st while reading value = %i\n\r",(int16_t)readings[1]);
00132         } while((int16_t)readings[1] < 50);
00133 
00134         i = 0;
00135         //while(text1[i] != '\0')
00136         {
00137 
00138             /*   led8 = 0;
00139                led7 = 0;
00140                led6 = 0;
00141                led5 = 0;
00142                led4 = 0;
00143                led3 = 0;
00144                led2 = 0;
00145                led1 = 0;   */
00146 
00147             for( int m=0; m< 8; m++) {
00148                 red = 0;
00149                 green = 0;
00150                 blue = 0;
00151                 RGB_LED(red,green,blue);
00152             }
00153             wait(waitvalue);
00154 
00155             for( int m=0; m< 8; m++) {
00156                 red = 0;
00157                 green = 0;
00158                 blue = 0;
00159                 RGB_LED(red,green,blue);
00160             }
00161             wait(waitvalue);
00162 
00163             //currentchar = text1[i];
00164 
00165             for( int m =0; m < 10; m++) {
00166                 /*char mal = font[currentchar - 0x20][m];
00167                 led8 = mal & 0x80;
00168                 led7 = mal & 0x40;
00169                 led6 = mal & 0x20;
00170                 led5 = mal & 0x10;
00171                 led4 = mal & 0x08;
00172                 led3 = mal & 0x04;
00173                 led2 = mal & 0x02;
00174                 led1 = mal & 0x01;*/
00175 
00176                 // if(led8 == 1)
00177 
00178                 green = greencolor[m][7];
00179                 red = redcolor[m][7];
00180                 blue = bluecolor[m][7];
00181                 RGB_LED(red,green,blue);
00182 
00183                 green = greencolor[m][6];
00184                 red = redcolor[m][6];
00185                 blue = bluecolor[m][6];
00186                 RGB_LED(red,green,blue);
00187 
00188                 green = greencolor[m][5];
00189                 red = redcolor[m][5];
00190                 blue = bluecolor[m][5];
00191                 RGB_LED(red,green,blue);
00192 
00193                 green = greencolor[m][4];
00194                 red = redcolor[m][4];
00195                 blue = bluecolor[m][4];
00196                 RGB_LED(red,green,blue);
00197 
00198                 green = greencolor[m][3];
00199                 red = redcolor[m][3];
00200                 blue = bluecolor[m][3];
00201                 RGB_LED(red,green,blue);
00202 
00203                 green = greencolor[m][2];
00204                 red = redcolor[m][2];
00205                 blue = bluecolor[m][2];
00206                 RGB_LED(red,green,blue);
00207 
00208                 green = greencolor[m][1];
00209                 red = redcolor[m][1];
00210                 blue = bluecolor[1][m];
00211                 RGB_LED(red,green,blue);
00212 
00213                 green = greencolor[m][0];
00214                 red = redcolor[m][0];
00215                 blue = bluecolor[m][0];
00216                 RGB_LED(red,green,blue);
00217 
00218 
00219                 wait(waitvalue);
00220             }
00221             /*  led8 = 0;
00222               led7 = 0;
00223               led6 = 0;
00224               led5 = 0;
00225               led4 = 0;
00226               led3 = 0;
00227               led2 = 0;
00228               led1 = 0; */
00229 
00230             for( int j=0; j< 8; j++) {
00231                 red = 0;
00232                 green = 0;
00233                 blue = 0;
00234                 RGB_LED(red,green,blue);
00235             }
00236             wait(waitvalue);
00237 
00238             for( int j=0; j< 8; j++) {
00239                 red = 0;
00240                 green = 0;
00241                 blue = 0;
00242                 RGB_LED(red,green,blue);
00243             }
00244             wait(waitvalue);
00245 
00246         }
00247 
00248         do {
00249             accelerometer.getOutput(readings);
00250             pc1.printf("| 2nd while reading value = %i\n\r",(int16_t)readings[1]);
00251         } while((int16_t)readings[1] > -50);
00252 
00253     }
00254 }