Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 }
Generated on Sat Jul 16 2022 05:09:39 by
1.7.2