The code consists of displaying a BMP image using the RGB matrices extracted from MATLAB.
Revision 0:27ddc786c67d, committed 2012-12-07
- Comitter:
- abarve9
- Date:
- Fri Dec 07 07:43:44 2012 +0000
- Commit message:
- The code consists of displaying a BMP image using the RGB matrices extracted from MATLAB.
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ADXL345.lib Fri Dec 07 07:43:44 2012 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/aberk/code/ADXL345/#bd8f0f20f433
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri Dec 07 07:43:44 2012 +0000
@@ -0,0 +1,254 @@
+#include "ADXL345.h"
+#include "mbed.h"
+DigitalOut latch(p15);
+DigitalOut enable(p16);
+DigitalIn s1(p29);
+DigitalIn s2(p30);
+//Cycles through different colors on RGB LED
+SPI spi(p11, p12, p13);
+//Use SPI hardware to write color values to LED driver chip
+
+PortOut ledport(Port1, 0xFFFFFFFF);
+
+ADXL345 accelerometer(p5, p6, p7, p8);
+//Serial pc(USBTX, USBRX);
+
+DigitalOut led8(p28);
+DigitalOut led7(p27);
+DigitalOut led6(p26);
+DigitalOut led5(p25);
+DigitalOut led4(p24);
+DigitalOut led3(p23);
+DigitalOut led2(p22);
+DigitalOut led1(p21);
+
+// ------------------------- Zigbee -------------
+
+Serial pc1(USBTX, USBRX);
+const int redcolor[10][8]={
+{255 , 250, 0, 0 , 0, 0, 244, 255},
+ {251, 0, 0, 219 ,225 , 0 , 0 ,244},
+ { 0 , 0 ,255 , 255, 255 , 255 , 0 , 0},
+ {0 , 222, 255, 254, 254, 255, 242 , 0},
+ {0 , 252 , 254 , 254 , 254 , 254 , 255, 0},
+ {0 , 254 ,254 , 254 , 254 , 254 , 255 , 0},
+ {0 , 230 ,255 , 254, 254, 255, 246, 0},
+ {0 , 0 , 255 , 255 , 255 , 255, 0, 0},
+ {244 , 0 , 0 , 244 , 250 , 0 , 0 ,232},
+ {255 , 238 , 0 , 0 , 0 , 0 , 227 , 255}
+};
+
+const int greencolor[10][8] = {
+
+ {255, 250 , 0 , 0 , 0 , 0 , 244 , 255},
+ {251 , 0 , 0 , 219 ,217 , 0 , 0 , 244},
+ { 0 , 0 ,253 , 254, 245 , 255 , 0, 0},
+ {0 , 212 , 246 ,254 , 242 , 244 ,230 , 0},
+ {0 , 240 , 242 , 254 ,242 , 242 , 249 , 0},
+ {0 , 241 , 242 , 254 , 242, 242 , 250, 0},
+ {0 ,220 , 245 , 255 , 242 , 243, 235 , 0},
+ {0 , 0 , 255 , 255 , 243 , 255 , 0 , 0},
+ { 244 , 0 , 0 , 244 ,242 , 0 , 0 , 232},
+ { 255 , 238 , 0 , 0 , 0 , 0 , 228, 255}
+};
+
+const int bluecolor[10][8]= {
+ {255 , 251 ,0, 0 , 0 , 0, 246, 255},
+ {253 , 0 , 0 , 0 , 0 , 0 , 0 , 247},
+ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
+ {0 , 0 , 0 , 0 , 0 , 0, 0 , 0},
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
+ {247 , 0 , 0 , 0 , 0 , 0 , 0, 237},
+ {255 , 240 , 0 , 0 , 0 , 0, 232 ,255}
+};
+void RGB_LED(int red, int green, int blue)
+{
+ 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);
+ latch=1;
+ latch=0;
+}
+
+
+int main()
+{
+ int readings[3] = {0, 0, 0};
+ int i = 0;
+ const char text1[50] = "HI";
+ int len;
+ char character;
+ char currentchar = 0;
+ int LED_MASK = 0xFFFFFFFF;
+
+ int red=0;
+ int green=0;
+ int blue=0;
+ spi.format(16,0);
+ spi.frequency(500000);
+ enable=0;
+ latch=0;
+
+
+
+ len = 0;
+ for(int n = 0; text1[n] != '\0'; n++) {
+ len++;
+ }
+ float waitvalue = 0.06/((6*len) + 1);
+ pc1.printf("text1 = %s\n\r", text1);
+// pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId());
+ wait(3);
+
+ //Go into standby mode to configure the device.
+ accelerometer.setPowerControl(0x00);
+
+ //Full resolution, +/-16g, 4mg/LSB.
+ accelerometer.setDataFormatControl(0x0B);
+
+ //3.2kHz data rate.
+ accelerometer.setDataRate(ADXL345_3200HZ);
+
+ //Measurement mode.
+ accelerometer.setPowerControl(0x08);
+
+ while (1) {
+
+ red = 0;
+ green = 0;
+ blue = 0;
+
+ accelerometer.getOutput(readings);
+
+ do {
+ accelerometer.getOutput(readings);
+ pc1.printf("| 1st while reading value = %i\n\r",(int16_t)readings[1]);
+ } while((int16_t)readings[1] < 50);
+
+ i = 0;
+ //while(text1[i] != '\0')
+ {
+
+ /* led8 = 0;
+ led7 = 0;
+ led6 = 0;
+ led5 = 0;
+ led4 = 0;
+ led3 = 0;
+ led2 = 0;
+ led1 = 0; */
+
+ for( int m=0; m< 8; m++) {
+ red = 0;
+ green = 0;
+ blue = 0;
+ RGB_LED(red,green,blue);
+ }
+ wait(waitvalue);
+
+ for( int m=0; m< 8; m++) {
+ red = 0;
+ green = 0;
+ blue = 0;
+ RGB_LED(red,green,blue);
+ }
+ wait(waitvalue);
+
+ //currentchar = text1[i];
+
+ for( int m =0; m < 10; m++) {
+ /*char mal = font[currentchar - 0x20][m];
+ led8 = mal & 0x80;
+ led7 = mal & 0x40;
+ led6 = mal & 0x20;
+ led5 = mal & 0x10;
+ led4 = mal & 0x08;
+ led3 = mal & 0x04;
+ led2 = mal & 0x02;
+ led1 = mal & 0x01;*/
+
+ // if(led8 == 1)
+
+ green = greencolor[m][7];
+ red = redcolor[m][7];
+ blue = bluecolor[m][7];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][6];
+ red = redcolor[m][6];
+ blue = bluecolor[m][6];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][5];
+ red = redcolor[m][5];
+ blue = bluecolor[m][5];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][4];
+ red = redcolor[m][4];
+ blue = bluecolor[m][4];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][3];
+ red = redcolor[m][3];
+ blue = bluecolor[m][3];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][2];
+ red = redcolor[m][2];
+ blue = bluecolor[m][2];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][1];
+ red = redcolor[m][1];
+ blue = bluecolor[1][m];
+ RGB_LED(red,green,blue);
+
+ green = greencolor[m][0];
+ red = redcolor[m][0];
+ blue = bluecolor[m][0];
+ RGB_LED(red,green,blue);
+
+
+ wait(waitvalue);
+ }
+ /* led8 = 0;
+ led7 = 0;
+ led6 = 0;
+ led5 = 0;
+ led4 = 0;
+ led3 = 0;
+ led2 = 0;
+ led1 = 0; */
+
+ for( int j=0; j< 8; j++) {
+ red = 0;
+ green = 0;
+ blue = 0;
+ RGB_LED(red,green,blue);
+ }
+ wait(waitvalue);
+
+ for( int j=0; j< 8; j++) {
+ red = 0;
+ green = 0;
+ blue = 0;
+ RGB_LED(red,green,blue);
+ }
+ wait(waitvalue);
+
+ }
+
+ do {
+ accelerometer.getOutput(readings);
+ pc1.printf("| 2nd while reading value = %i\n\r",(int16_t)readings[1]);
+ } while((int16_t)readings[1] > -50);
+
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Dec 07 07:43:44 2012 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/b60934f96c0c \ No newline at end of file