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.
Fork of ADXL345_HelloWorld by
main.cpp
00001 #include "ADXL345.h" 00002 #include "mbed.h" 00003 #include "iostream" 00004 #include "stdio.h" 00005 #include "stdlib.h" 00006 #include "string" 00007 00008 using namespace std; 00009 00010 PortOut ledport(Port1, 0xFFFFFFFF); 00011 ADXL345 accelerometer(p5, p6, p7, p8); 00012 //Serial pc(USBTX, USBRX); 00013 00014 DigitalOut led8(p28); 00015 DigitalOut led7(p27); 00016 DigitalOut led6(p26); 00017 DigitalOut led5(p25); 00018 DigitalOut led4(p24); 00019 DigitalOut led3(p23); 00020 DigitalOut led2(p22); 00021 DigitalOut led1(p21); 00022 DigitalOut test(LED4); 00023 00024 // ------------------------- Zigbee ------------- 00025 00026 Serial xbee2(p9, p10); 00027 DigitalOut rst1(p11); 00028 Serial pc1(USBTX, USBRX); 00029 DigitalOut myled(LED2); 00030 00031 int main() 00032 { 00033 int count=0; 00034 int readings[3] = {0, 0, 0}; 00035 //int del = 0; 00036 int16_t sum = 0; 00037 int16_t xval[50]; 00038 int i = 0; 00039 char text[30]; 00040 int len,len1; 00041 len1 = 0; 00042 len = 0; 00043 00044 // --------- Zigbee 00045 00046 char character; 00047 rst1 = 0; //Set reset pin to 0 00048 myled = 0; 00049 wait_ms(1); 00050 rst1 = 1; //Set reset pin to 1 00051 wait_ms(1); 00052 00053 char buffer[20]; 00054 int global = 0; 00055 00056 //--- Zigbeeee 00057 00058 const char font[0x60][5] = { 00059 00060 {0x00,0x00,0x00,0x00,0x00}, // ASCII - 32 space 00061 {0x00,0x00,0xF9,0x00,0x00}, // ASCII - 33 ! 00062 {0x00,0xE0,0x00,0xE0,0x00}, // ASCII - 34 " 00063 {0x24,0x7E,0x24,0x7E,0x24}, // ASCII - 35 # 00064 {0x34,0x4A,0xFF,0x49,0x26}, // ASCII - 36 $ 00065 {0x22,0x04,0x08,0x10,0x22}, // ASCII - 37 % 00066 {0x26,0x59,0x4D,0x52,0x25}, // ASCII - 38 & 00067 {0x00,0x00,0xE0,0x00,0x00}, // ASCII - 39 ' 00068 {0x00,0x3C,0x42,0x81,0x00}, // ASCII - 40 ( 00069 {0x00,0x81,0x42,0x3C,0x00}, // ASCII - 41 ) 00070 {0x28,0x30,0xE0,0x30,0x28}, // ASCII - 42 * 00071 {0x08,0x08,0x3E,0x08,0x08}, // ASCII - 43 + 00072 {0x00,0x01,0x02,0x00,0x00}, // ASCII - 44 , 00073 {0x08,0x08,0x08,0x08,0x08}, // ASCII - 45 - 00074 {0x00,0x00,0x01,0x00,0x00}, // ASCII - 46 . 00075 {0x02,0x04,0x08,0x10,0x20}, // ASCII - 47 / 00076 {0x7E,0x81,0x81,0x81,0x7E}, // ASCII - 48 0 00077 {0x00,0x21,0xFF,0x01,0x00}, // ASCII - 49 1 00078 {0x41,0x83,0x85,0x89,0x71}, // ASCII - 50 2 00079 {0x42,0x91,0x91,0x91,0x6E}, // ASCII - 51 3 00080 {0xF0,0x10,0x10,0x10,0xFF}, // ASCII - 52 4 00081 {0xF2,0x91,0x91,0x91,0x8E}, // ASCII - 53 5 00082 {0x3E,0x51,0x91,0x91,0x8E}, // ASCII - 54 6 00083 {0x87,0x88,0x90,0xA0,0xC0}, // ASCII - 55 7 00084 {0x76,0x89,0x89,0x89,0x76}, // ASCII - 56 8 00085 {0x62,0x91,0x91,0x91,0x7e}, // ASCII - 57 9 00086 {0x00,0x00,0x24,0x00,0x00}, // ASCII - 58 : 00087 {0x00,0x01,0x12,0x00,0x00}, // ASCII - 59 ; 00088 {0x00,0x08,0x14,0x22,0x41}, // ASCII - 60 < 00089 {0x14,0x14,0x14,0x14,0x14}, // ASCII - 61 = 00090 {0x00,0x41,0x22,0x14,0x08}, // ASCII - 62 > 00091 {0x40,0x80,0x8D,0x90,0x60}, // ASCII - 63 ? 00092 {0x7E,0x81,0xBD,0xA5,0x78}, // ASCII - 64 @ 00093 {0x3F,0x48,0x88,0x48,0x3F}, // ASCII - 65 A 00094 {0xFF,0x91,0x91,0x99,0x66}, // ASCII - 66 B 00095 {0x3C,0x42,0x81,0x81,0x42}, // ASCII - 67 C 00096 {0xFF,0x81,0x81,0x42,0x3C}, // ASCII - 68 D 00097 {0xFF,0x91,0x91,0x91,0x81}, // ASCII - 69 E 00098 {0xFF,0x90,0x90,0x90,0x80}, // ASCII - 70 F 00099 {0x3E,0x41,0x8F,0x88,0x4F}, // ASCII - 71 G 00100 {0xFF,0x10,0x10,0x10,0xFF}, // ASCII - 72 H 00101 {0x00,0x81,0xFF,0x81,0x00}, // ASCII - 73 I 00102 {0x06,0x01,0x81,0xFE,0x80}, // ASCII - 74 J 00103 {0xFF,0x18,0x24,0x42,0x81}, // ASCII - 75 K 00104 {0xFF,0x01,0x01,0x01,0x01}, // ASCII - 76 L 00105 {0xFF,0x40,0x30,0x40,0xFF}, // ASCII - 77 M 00106 {0xFF,0x40,0x20,0x10,0xFF}, // ASCII - 78 N 00107 {0x7E,0x81,0x81,0x81,0x7E}, // ASCII - 79 O 00108 {0xFF,0x90,0x90,0x90,0x60}, // ASCII - 80 P 00109 {0x7E,0x81,0x85,0x82,0x7D}, // ASCII - 81 Q 00110 {0xFF,0x98,0x94,0x92,0x61}, // ASCII - 82 R 00111 {0x72,0x89,0x89,0x89,0x46}, // ASCII - 83 S 00112 {0x80,0x80,0xFF,0x80,0x80}, // ASCII - 84 T 00113 {0xFE,0x01,0x01,0x01,0xFE}, // ASCII - 85 U 00114 {0xFC,0x02,0x01,0x02,0xFC}, // ASCII - 86 V 00115 {0xFF,0x02,0x1C,0x02,0xFF}, // ASCII - 87 W 00116 {0xC3,0x24,0x18,0x24,0xC3}, // ASCII - 88 X 00117 {0xC0,0x20,0x1F,0x20,0xC0}, // ASCII - 89 Y 00118 {0x87,0x89,0x91,0xA1,0xC1}, // ASCII - 90 Z 00119 {0x00,0xFF,0x81,0x81,0x00}, // ASCII - 91 [ 00120 {0x20,0x10,0x08,0x04,0x02}, // ASCII - 92 '\' 00121 {0x00,0x81,0x81,0xFF,0x00}, // ASCII - 93 ] 00122 {0x20,0x40,0x80,0x40,0x20}, // ASCII - 94 ^ 00123 {0x01,0x01,0x01,0x01,0x01}, // ASCII - 95 _ 00124 {0x00,0x80,0x40,0x20,0x00}, // ASCII - 96 ` 00125 {0x26,0x29,0x29,0x1F,0x01}, // ASCII - 97 a 00126 {0xFF,0x11,0x11,0x11,0x0E}, // ASCII - 98 b 00127 {0x0E,0x11,0x11,0x11,0x11}, // ASCII - 99 c 00128 {0x0E,0x11,0x11,0x11,0xFF}, // ASCII - 100 d 00129 {0x0E,0x15,0x15,0x15,0x0D}, // ASCII - 101 e 00130 {0x10,0x10,0x7F,0x90,0x90}, // ASCII - 102 f 00131 {0x08,0x15,0x15,0x15,0x0E}, // ASCII - 103 g 00132 {0xFF,0x08,0x08,0x08,0x07}, // ASCII - 104 h 00133 {0x00,0x00,0x9F,0x00,0x00}, // ASCII - 105 i 00134 {0x02,0x01,0x01,0x9F,0x00}, // ASCII - 106 j 00135 {0xFF,0x04,0x0A,0x11,0x00}, // ASCII - 107 k 00136 {0x00,0x01,0xFF,0x01,0x00}, // ASCII - 108 l 00137 {0x1F,0x10,0x0F,0x10,0x0F}, // ASCII - 109 m 00138 {0x10,0x0F,0x10,0x10,0x0F}, // ASCII - 110 n 00139 {0x0E,0x11,0x11,0x11,0x0E}, // ASCII - 111 o 00140 {0x1F,0x14,0x14,0x14,0x08}, // ASCII - 112 p 00141 {0x08,0x14,0x14,0x14,0x1F}, // ASCII - 113 q 00142 {0x1F,0x08,0x10,0x10,0x08}, // ASCII - 114 r 00143 {0x09,0x15,0x15,0x15,0x12}, // ASCII - 115 s 00144 {0x10,0x10,0x7F,0x11,0x12}, // ASCII - 116 t 00145 {0x1F,0x01,0x01,0x1F,0x01}, // ASCII - 117 u 00146 {0x1C,0x02,0x01,0x02,0x1C}, // ASCII - 118 v 00147 {0x1E,0x01,0x0F,0x01,0x1E}, // ASCII - 119 w 00148 {0x11,0x0A,0x04,0x0A,0x11}, // ASCII - 120 x 00149 {0x11,0x0A,0x04,0x08,0x10}, // ASCII - 121 y 00150 {0x11,0x13,0x15,0x19,0x11}, // ASCII - 122 z 00151 {0x18,0x66,0x81,0x81,0x00}, // ASCII - 123 { 00152 {0x00,0x00,0xFF,0x00,0x00}, // ASCII - 124 | 00153 {0x00,0x81,0x81,0x66,0x18}, // ASCII - 125 } 00154 {0x0C,0x10,0x08,0x04,0x18}, // ASCII - 126 ~ 00155 }; 00156 00157 char currentchar = 0; 00158 int LED_MASK = 0xFFFFFFFF; 00159 00160 00161 //pc.printf("Starting ADXL345 test...\r\n"); 00162 // pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId()); 00163 wait(3); 00164 00165 //Go into standby mode to configure the device. 00166 accelerometer.setPowerControl(0x00); 00167 00168 //Full resolution, +/-16g, 4mg/LSB. 00169 accelerometer.setDataFormatControl(0x0B); 00170 00171 //3.2kHz data rate. 00172 accelerometer.setDataRate(ADXL345_3200HZ); 00173 00174 //Measurement mode. 00175 accelerometer.setPowerControl(0x08); 00176 00177 while (1) { 00178 global=0; 00179 00180 while(1) { 00181 test = xbee2.readable(); 00182 00183 if(xbee2.readable()) { 00184 character = xbee2.getc(); 00185 00186 if(character == 13) { 00187 00188 buffer[global] = '\0'; 00189 //strcpy(text1,buffer); 00190 break; 00191 } else { 00192 buffer[global]= character; 00193 global++; 00194 00195 //pc1.printf("%d" ,xbee2.readable()); 00196 } 00197 } 00198 00199 } 00200 00201 pc1.printf("\n\rbuffer = %s\n\r" ,buffer); 00202 //pc1.printf(" \n\rBuffer = %s", buffer); 00203 len1 = strlen(buffer); 00204 00205 for( int m =0; m < (len1 + 2); m++) { 00206 00207 text[m] = 0x20; 00208 } 00209 00210 for( int m =(len1 + 2); m <( 2*len1 + 2); m++) { 00211 00212 text[m] = buffer[m - (len1 +2)]; 00213 } 00214 00215 text[2*len1 + 2] = '\0'; 00216 len = strlen(text); 00217 for(int p =0; p <len; p++) 00218 {pc1.printf("%c", text[p]); 00219 } 00220 pc1.printf("\n\rstrlen(text) = %d", len); 00221 float waitvalue = 0.08 / ((6*len)); 00222 00223 00224 00225 while(!(xbee2.readable())) { 00226 00227 do { 00228 accelerometer.getOutput(readings); 00229 if(xbee2.readable()) 00230 break; 00231 } while((int16_t)readings[1] < 50); 00232 i = 0; 00233 00234 while(text[i] != '\0') { 00235 00236 led8 = 0; 00237 led7 = 0; 00238 led6 = 0; 00239 led5 = 0; 00240 led4 = 0; 00241 led3 = 0; 00242 led2 = 0; 00243 led1 = 0; 00244 wait(waitvalue); 00245 currentchar = text[i]; 00246 00247 for( int m =0; m <5; m++) { 00248 char mal = font[currentchar - 0x20][m]; 00249 led8 = mal & 0x80; 00250 led7 = mal & 0x40; 00251 led6 = mal & 0x20; 00252 led5 = mal & 0x10; 00253 led4 = mal & 0x08; 00254 led3 = mal & 0x04; 00255 led2 = mal & 0x02; 00256 led1 = mal & 0x01; 00257 wait(waitvalue); 00258 } 00259 led8 = 0; 00260 led7 = 0; 00261 led6 = 0; 00262 led5 = 0; 00263 led4 = 0; 00264 led3 = 0; 00265 led2 = 0; 00266 led1 = 0; 00267 wait(waitvalue); 00268 i++; 00269 } 00270 do { 00271 accelerometer.getOutput(readings); 00272 if(xbee2.readable()) 00273 break; 00274 } while((int16_t)readings[1] > -50); 00275 } 00276 } 00277 }
Generated on Thu Jul 21 2022 00:56:54 by
1.7.2
