This consists of code to receive the transmitted characters and display them on red LEDs.

Dependencies:   ADXL345 mbed

Fork of ADXL345_HelloWorld by Aaron Berk

Committer:
abarve9
Date:
Fri Dec 07 07:38:07 2012 +0000
Revision:
1:1fd6658651c4
Parent:
0:9e92575dece6
This consists of code to receive the transmitted characters and display them on red LEDs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abarve9 1:1fd6658651c4 1 #include "ADXL345.h"
abarve9 1:1fd6658651c4 2 #include "mbed.h"
abarve9 1:1fd6658651c4 3 #include "iostream"
abarve9 1:1fd6658651c4 4 #include "stdio.h"
abarve9 1:1fd6658651c4 5 #include "stdlib.h"
abarve9 1:1fd6658651c4 6 #include "string"
abarve9 1:1fd6658651c4 7
abarve9 1:1fd6658651c4 8 using namespace std;
abarve9 1:1fd6658651c4 9
abarve9 1:1fd6658651c4 10 PortOut ledport(Port1, 0xFFFFFFFF);
abarve9 1:1fd6658651c4 11 ADXL345 accelerometer(p5, p6, p7, p8);
abarve9 1:1fd6658651c4 12 //Serial pc(USBTX, USBRX);
abarve9 1:1fd6658651c4 13
abarve9 1:1fd6658651c4 14 DigitalOut led8(p28);
abarve9 1:1fd6658651c4 15 DigitalOut led7(p27);
abarve9 1:1fd6658651c4 16 DigitalOut led6(p26);
abarve9 1:1fd6658651c4 17 DigitalOut led5(p25);
abarve9 1:1fd6658651c4 18 DigitalOut led4(p24);
abarve9 1:1fd6658651c4 19 DigitalOut led3(p23);
abarve9 1:1fd6658651c4 20 DigitalOut led2(p22);
abarve9 1:1fd6658651c4 21 DigitalOut led1(p21);
abarve9 1:1fd6658651c4 22 DigitalOut test(LED4);
abarve9 1:1fd6658651c4 23
abarve9 1:1fd6658651c4 24 // ------------------------- Zigbee -------------
abarve9 1:1fd6658651c4 25
abarve9 1:1fd6658651c4 26 Serial xbee2(p9, p10);
abarve9 1:1fd6658651c4 27 DigitalOut rst1(p11);
abarve9 1:1fd6658651c4 28 Serial pc1(USBTX, USBRX);
abarve9 1:1fd6658651c4 29 DigitalOut myled(LED2);
abarve9 1:1fd6658651c4 30
abarve9 1:1fd6658651c4 31 int main()
abarve9 1:1fd6658651c4 32 {
abarve9 1:1fd6658651c4 33 int count=0;
abarve9 1:1fd6658651c4 34 int readings[3] = {0, 0, 0};
abarve9 1:1fd6658651c4 35 //int del = 0;
abarve9 1:1fd6658651c4 36 int16_t sum = 0;
abarve9 1:1fd6658651c4 37 int16_t xval[50];
abarve9 1:1fd6658651c4 38 int i = 0;
abarve9 1:1fd6658651c4 39 char text[30];
abarve9 1:1fd6658651c4 40 int len,len1;
abarve9 1:1fd6658651c4 41 len1 = 0;
abarve9 1:1fd6658651c4 42 len = 0;
abarve9 1:1fd6658651c4 43
abarve9 1:1fd6658651c4 44 // --------- Zigbee
abarve9 1:1fd6658651c4 45
abarve9 1:1fd6658651c4 46 char character;
abarve9 1:1fd6658651c4 47 rst1 = 0; //Set reset pin to 0
abarve9 1:1fd6658651c4 48 myled = 0;
abarve9 1:1fd6658651c4 49 wait_ms(1);
abarve9 1:1fd6658651c4 50 rst1 = 1; //Set reset pin to 1
abarve9 1:1fd6658651c4 51 wait_ms(1);
abarve9 1:1fd6658651c4 52
abarve9 1:1fd6658651c4 53 char buffer[20];
abarve9 1:1fd6658651c4 54 int global = 0;
abarve9 1:1fd6658651c4 55
abarve9 1:1fd6658651c4 56 //--- Zigbeeee
abarve9 1:1fd6658651c4 57
abarve9 1:1fd6658651c4 58 const char font[0x60][5] = {
abarve9 1:1fd6658651c4 59
abarve9 1:1fd6658651c4 60 {0x00,0x00,0x00,0x00,0x00}, // ASCII - 32 space
abarve9 1:1fd6658651c4 61 {0x00,0x00,0xF9,0x00,0x00}, // ASCII - 33 !
abarve9 1:1fd6658651c4 62 {0x00,0xE0,0x00,0xE0,0x00}, // ASCII - 34 "
abarve9 1:1fd6658651c4 63 {0x24,0x7E,0x24,0x7E,0x24}, // ASCII - 35 #
abarve9 1:1fd6658651c4 64 {0x34,0x4A,0xFF,0x49,0x26}, // ASCII - 36 $
abarve9 1:1fd6658651c4 65 {0x22,0x04,0x08,0x10,0x22}, // ASCII - 37 %
abarve9 1:1fd6658651c4 66 {0x26,0x59,0x4D,0x52,0x25}, // ASCII - 38 &
abarve9 1:1fd6658651c4 67 {0x00,0x00,0xE0,0x00,0x00}, // ASCII - 39 '
abarve9 1:1fd6658651c4 68 {0x00,0x3C,0x42,0x81,0x00}, // ASCII - 40 (
abarve9 1:1fd6658651c4 69 {0x00,0x81,0x42,0x3C,0x00}, // ASCII - 41 )
abarve9 1:1fd6658651c4 70 {0x28,0x30,0xE0,0x30,0x28}, // ASCII - 42 *
abarve9 1:1fd6658651c4 71 {0x08,0x08,0x3E,0x08,0x08}, // ASCII - 43 +
abarve9 1:1fd6658651c4 72 {0x00,0x01,0x02,0x00,0x00}, // ASCII - 44 ,
abarve9 1:1fd6658651c4 73 {0x08,0x08,0x08,0x08,0x08}, // ASCII - 45 -
abarve9 1:1fd6658651c4 74 {0x00,0x00,0x01,0x00,0x00}, // ASCII - 46 .
abarve9 1:1fd6658651c4 75 {0x02,0x04,0x08,0x10,0x20}, // ASCII - 47 /
abarve9 1:1fd6658651c4 76 {0x7E,0x81,0x81,0x81,0x7E}, // ASCII - 48 0
abarve9 1:1fd6658651c4 77 {0x00,0x21,0xFF,0x01,0x00}, // ASCII - 49 1
abarve9 1:1fd6658651c4 78 {0x41,0x83,0x85,0x89,0x71}, // ASCII - 50 2
abarve9 1:1fd6658651c4 79 {0x42,0x91,0x91,0x91,0x6E}, // ASCII - 51 3
abarve9 1:1fd6658651c4 80 {0xF0,0x10,0x10,0x10,0xFF}, // ASCII - 52 4
abarve9 1:1fd6658651c4 81 {0xF2,0x91,0x91,0x91,0x8E}, // ASCII - 53 5
abarve9 1:1fd6658651c4 82 {0x3E,0x51,0x91,0x91,0x8E}, // ASCII - 54 6
abarve9 1:1fd6658651c4 83 {0x87,0x88,0x90,0xA0,0xC0}, // ASCII - 55 7
abarve9 1:1fd6658651c4 84 {0x76,0x89,0x89,0x89,0x76}, // ASCII - 56 8
abarve9 1:1fd6658651c4 85 {0x62,0x91,0x91,0x91,0x7e}, // ASCII - 57 9
abarve9 1:1fd6658651c4 86 {0x00,0x00,0x24,0x00,0x00}, // ASCII - 58 :
abarve9 1:1fd6658651c4 87 {0x00,0x01,0x12,0x00,0x00}, // ASCII - 59 ;
abarve9 1:1fd6658651c4 88 {0x00,0x08,0x14,0x22,0x41}, // ASCII - 60 <
abarve9 1:1fd6658651c4 89 {0x14,0x14,0x14,0x14,0x14}, // ASCII - 61 =
abarve9 1:1fd6658651c4 90 {0x00,0x41,0x22,0x14,0x08}, // ASCII - 62 >
abarve9 1:1fd6658651c4 91 {0x40,0x80,0x8D,0x90,0x60}, // ASCII - 63 ?
abarve9 1:1fd6658651c4 92 {0x7E,0x81,0xBD,0xA5,0x78}, // ASCII - 64 @
abarve9 1:1fd6658651c4 93 {0x3F,0x48,0x88,0x48,0x3F}, // ASCII - 65 A
abarve9 1:1fd6658651c4 94 {0xFF,0x91,0x91,0x99,0x66}, // ASCII - 66 B
abarve9 1:1fd6658651c4 95 {0x3C,0x42,0x81,0x81,0x42}, // ASCII - 67 C
abarve9 1:1fd6658651c4 96 {0xFF,0x81,0x81,0x42,0x3C}, // ASCII - 68 D
abarve9 1:1fd6658651c4 97 {0xFF,0x91,0x91,0x91,0x81}, // ASCII - 69 E
abarve9 1:1fd6658651c4 98 {0xFF,0x90,0x90,0x90,0x80}, // ASCII - 70 F
abarve9 1:1fd6658651c4 99 {0x3E,0x41,0x8F,0x88,0x4F}, // ASCII - 71 G
abarve9 1:1fd6658651c4 100 {0xFF,0x10,0x10,0x10,0xFF}, // ASCII - 72 H
abarve9 1:1fd6658651c4 101 {0x00,0x81,0xFF,0x81,0x00}, // ASCII - 73 I
abarve9 1:1fd6658651c4 102 {0x06,0x01,0x81,0xFE,0x80}, // ASCII - 74 J
abarve9 1:1fd6658651c4 103 {0xFF,0x18,0x24,0x42,0x81}, // ASCII - 75 K
abarve9 1:1fd6658651c4 104 {0xFF,0x01,0x01,0x01,0x01}, // ASCII - 76 L
abarve9 1:1fd6658651c4 105 {0xFF,0x40,0x30,0x40,0xFF}, // ASCII - 77 M
abarve9 1:1fd6658651c4 106 {0xFF,0x40,0x20,0x10,0xFF}, // ASCII - 78 N
abarve9 1:1fd6658651c4 107 {0x7E,0x81,0x81,0x81,0x7E}, // ASCII - 79 O
abarve9 1:1fd6658651c4 108 {0xFF,0x90,0x90,0x90,0x60}, // ASCII - 80 P
abarve9 1:1fd6658651c4 109 {0x7E,0x81,0x85,0x82,0x7D}, // ASCII - 81 Q
abarve9 1:1fd6658651c4 110 {0xFF,0x98,0x94,0x92,0x61}, // ASCII - 82 R
abarve9 1:1fd6658651c4 111 {0x72,0x89,0x89,0x89,0x46}, // ASCII - 83 S
abarve9 1:1fd6658651c4 112 {0x80,0x80,0xFF,0x80,0x80}, // ASCII - 84 T
abarve9 1:1fd6658651c4 113 {0xFE,0x01,0x01,0x01,0xFE}, // ASCII - 85 U
abarve9 1:1fd6658651c4 114 {0xFC,0x02,0x01,0x02,0xFC}, // ASCII - 86 V
abarve9 1:1fd6658651c4 115 {0xFF,0x02,0x1C,0x02,0xFF}, // ASCII - 87 W
abarve9 1:1fd6658651c4 116 {0xC3,0x24,0x18,0x24,0xC3}, // ASCII - 88 X
abarve9 1:1fd6658651c4 117 {0xC0,0x20,0x1F,0x20,0xC0}, // ASCII - 89 Y
abarve9 1:1fd6658651c4 118 {0x87,0x89,0x91,0xA1,0xC1}, // ASCII - 90 Z
abarve9 1:1fd6658651c4 119 {0x00,0xFF,0x81,0x81,0x00}, // ASCII - 91 [
abarve9 1:1fd6658651c4 120 {0x20,0x10,0x08,0x04,0x02}, // ASCII - 92 '\'
abarve9 1:1fd6658651c4 121 {0x00,0x81,0x81,0xFF,0x00}, // ASCII - 93 ]
abarve9 1:1fd6658651c4 122 {0x20,0x40,0x80,0x40,0x20}, // ASCII - 94 ^
abarve9 1:1fd6658651c4 123 {0x01,0x01,0x01,0x01,0x01}, // ASCII - 95 _
abarve9 1:1fd6658651c4 124 {0x00,0x80,0x40,0x20,0x00}, // ASCII - 96 `
abarve9 1:1fd6658651c4 125 {0x26,0x29,0x29,0x1F,0x01}, // ASCII - 97 a
abarve9 1:1fd6658651c4 126 {0xFF,0x11,0x11,0x11,0x0E}, // ASCII - 98 b
abarve9 1:1fd6658651c4 127 {0x0E,0x11,0x11,0x11,0x11}, // ASCII - 99 c
abarve9 1:1fd6658651c4 128 {0x0E,0x11,0x11,0x11,0xFF}, // ASCII - 100 d
abarve9 1:1fd6658651c4 129 {0x0E,0x15,0x15,0x15,0x0D}, // ASCII - 101 e
abarve9 1:1fd6658651c4 130 {0x10,0x10,0x7F,0x90,0x90}, // ASCII - 102 f
abarve9 1:1fd6658651c4 131 {0x08,0x15,0x15,0x15,0x0E}, // ASCII - 103 g
abarve9 1:1fd6658651c4 132 {0xFF,0x08,0x08,0x08,0x07}, // ASCII - 104 h
abarve9 1:1fd6658651c4 133 {0x00,0x00,0x9F,0x00,0x00}, // ASCII - 105 i
abarve9 1:1fd6658651c4 134 {0x02,0x01,0x01,0x9F,0x00}, // ASCII - 106 j
abarve9 1:1fd6658651c4 135 {0xFF,0x04,0x0A,0x11,0x00}, // ASCII - 107 k
abarve9 1:1fd6658651c4 136 {0x00,0x01,0xFF,0x01,0x00}, // ASCII - 108 l
abarve9 1:1fd6658651c4 137 {0x1F,0x10,0x0F,0x10,0x0F}, // ASCII - 109 m
abarve9 1:1fd6658651c4 138 {0x10,0x0F,0x10,0x10,0x0F}, // ASCII - 110 n
abarve9 1:1fd6658651c4 139 {0x0E,0x11,0x11,0x11,0x0E}, // ASCII - 111 o
abarve9 1:1fd6658651c4 140 {0x1F,0x14,0x14,0x14,0x08}, // ASCII - 112 p
abarve9 1:1fd6658651c4 141 {0x08,0x14,0x14,0x14,0x1F}, // ASCII - 113 q
abarve9 1:1fd6658651c4 142 {0x1F,0x08,0x10,0x10,0x08}, // ASCII - 114 r
abarve9 1:1fd6658651c4 143 {0x09,0x15,0x15,0x15,0x12}, // ASCII - 115 s
abarve9 1:1fd6658651c4 144 {0x10,0x10,0x7F,0x11,0x12}, // ASCII - 116 t
abarve9 1:1fd6658651c4 145 {0x1F,0x01,0x01,0x1F,0x01}, // ASCII - 117 u
abarve9 1:1fd6658651c4 146 {0x1C,0x02,0x01,0x02,0x1C}, // ASCII - 118 v
abarve9 1:1fd6658651c4 147 {0x1E,0x01,0x0F,0x01,0x1E}, // ASCII - 119 w
abarve9 1:1fd6658651c4 148 {0x11,0x0A,0x04,0x0A,0x11}, // ASCII - 120 x
abarve9 1:1fd6658651c4 149 {0x11,0x0A,0x04,0x08,0x10}, // ASCII - 121 y
abarve9 1:1fd6658651c4 150 {0x11,0x13,0x15,0x19,0x11}, // ASCII - 122 z
abarve9 1:1fd6658651c4 151 {0x18,0x66,0x81,0x81,0x00}, // ASCII - 123 {
abarve9 1:1fd6658651c4 152 {0x00,0x00,0xFF,0x00,0x00}, // ASCII - 124 |
abarve9 1:1fd6658651c4 153 {0x00,0x81,0x81,0x66,0x18}, // ASCII - 125 }
abarve9 1:1fd6658651c4 154 {0x0C,0x10,0x08,0x04,0x18}, // ASCII - 126 ~
abarve9 1:1fd6658651c4 155 };
abarve9 1:1fd6658651c4 156
abarve9 1:1fd6658651c4 157 char currentchar = 0;
abarve9 1:1fd6658651c4 158 int LED_MASK = 0xFFFFFFFF;
abarve9 1:1fd6658651c4 159
abarve9 1:1fd6658651c4 160
abarve9 1:1fd6658651c4 161 //pc.printf("Starting ADXL345 test...\r\n");
abarve9 1:1fd6658651c4 162 // pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId());
abarve9 1:1fd6658651c4 163 wait(3);
abarve9 1:1fd6658651c4 164
abarve9 1:1fd6658651c4 165 //Go into standby mode to configure the device.
abarve9 1:1fd6658651c4 166 accelerometer.setPowerControl(0x00);
abarve9 1:1fd6658651c4 167
abarve9 1:1fd6658651c4 168 //Full resolution, +/-16g, 4mg/LSB.
abarve9 1:1fd6658651c4 169 accelerometer.setDataFormatControl(0x0B);
abarve9 1:1fd6658651c4 170
abarve9 1:1fd6658651c4 171 //3.2kHz data rate.
abarve9 1:1fd6658651c4 172 accelerometer.setDataRate(ADXL345_3200HZ);
abarve9 1:1fd6658651c4 173
abarve9 1:1fd6658651c4 174 //Measurement mode.
abarve9 1:1fd6658651c4 175 accelerometer.setPowerControl(0x08);
abarve9 1:1fd6658651c4 176
abarve9 1:1fd6658651c4 177 while (1) {
abarve9 1:1fd6658651c4 178 global=0;
abarve9 1:1fd6658651c4 179
abarve9 1:1fd6658651c4 180 while(1) {
abarve9 1:1fd6658651c4 181 test = xbee2.readable();
abarve9 1:1fd6658651c4 182
abarve9 1:1fd6658651c4 183 if(xbee2.readable()) {
abarve9 1:1fd6658651c4 184 character = xbee2.getc();
abarve9 1:1fd6658651c4 185
abarve9 1:1fd6658651c4 186 if(character == 13) {
abarve9 1:1fd6658651c4 187
abarve9 1:1fd6658651c4 188 buffer[global] = '\0';
abarve9 1:1fd6658651c4 189 //strcpy(text1,buffer);
abarve9 1:1fd6658651c4 190 break;
abarve9 1:1fd6658651c4 191 } else {
abarve9 1:1fd6658651c4 192 buffer[global]= character;
abarve9 1:1fd6658651c4 193 global++;
abarve9 1:1fd6658651c4 194
abarve9 1:1fd6658651c4 195 //pc1.printf("%d" ,xbee2.readable());
abarve9 1:1fd6658651c4 196 }
abarve9 1:1fd6658651c4 197 }
abarve9 1:1fd6658651c4 198
abarve9 1:1fd6658651c4 199 }
abarve9 1:1fd6658651c4 200
abarve9 1:1fd6658651c4 201 pc1.printf("\n\rbuffer = %s\n\r" ,buffer);
abarve9 1:1fd6658651c4 202 //pc1.printf(" \n\rBuffer = %s", buffer);
abarve9 1:1fd6658651c4 203 len1 = strlen(buffer);
abarve9 1:1fd6658651c4 204
abarve9 1:1fd6658651c4 205 for( int m =0; m < (len1 + 2); m++) {
abarve9 1:1fd6658651c4 206
abarve9 1:1fd6658651c4 207 text[m] = 0x20;
abarve9 1:1fd6658651c4 208 }
abarve9 1:1fd6658651c4 209
abarve9 1:1fd6658651c4 210 for( int m =(len1 + 2); m <( 2*len1 + 2); m++) {
abarve9 1:1fd6658651c4 211
abarve9 1:1fd6658651c4 212 text[m] = buffer[m - (len1 +2)];
abarve9 1:1fd6658651c4 213 }
abarve9 1:1fd6658651c4 214
abarve9 1:1fd6658651c4 215 text[2*len1 + 2] = '\0';
abarve9 1:1fd6658651c4 216 len = strlen(text);
abarve9 1:1fd6658651c4 217 for(int p =0; p <len; p++)
abarve9 1:1fd6658651c4 218 {pc1.printf("%c", text[p]);
abarve9 1:1fd6658651c4 219 }
abarve9 1:1fd6658651c4 220 pc1.printf("\n\rstrlen(text) = %d", len);
abarve9 1:1fd6658651c4 221 float waitvalue = 0.08 / ((6*len));
abarve9 1:1fd6658651c4 222
abarve9 1:1fd6658651c4 223
abarve9 1:1fd6658651c4 224
abarve9 1:1fd6658651c4 225 while(!(xbee2.readable())) {
abarve9 1:1fd6658651c4 226
abarve9 1:1fd6658651c4 227 do {
abarve9 1:1fd6658651c4 228 accelerometer.getOutput(readings);
abarve9 1:1fd6658651c4 229 if(xbee2.readable())
abarve9 1:1fd6658651c4 230 break;
abarve9 1:1fd6658651c4 231 } while((int16_t)readings[1] < 50);
abarve9 1:1fd6658651c4 232 i = 0;
abarve9 1:1fd6658651c4 233
abarve9 1:1fd6658651c4 234 while(text[i] != '\0') {
abarve9 1:1fd6658651c4 235
abarve9 1:1fd6658651c4 236 led8 = 0;
abarve9 1:1fd6658651c4 237 led7 = 0;
abarve9 1:1fd6658651c4 238 led6 = 0;
abarve9 1:1fd6658651c4 239 led5 = 0;
abarve9 1:1fd6658651c4 240 led4 = 0;
abarve9 1:1fd6658651c4 241 led3 = 0;
abarve9 1:1fd6658651c4 242 led2 = 0;
abarve9 1:1fd6658651c4 243 led1 = 0;
abarve9 1:1fd6658651c4 244 wait(waitvalue);
abarve9 1:1fd6658651c4 245 currentchar = text[i];
abarve9 1:1fd6658651c4 246
abarve9 1:1fd6658651c4 247 for( int m =0; m <5; m++) {
abarve9 1:1fd6658651c4 248 char mal = font[currentchar - 0x20][m];
abarve9 1:1fd6658651c4 249 led8 = mal & 0x80;
abarve9 1:1fd6658651c4 250 led7 = mal & 0x40;
abarve9 1:1fd6658651c4 251 led6 = mal & 0x20;
abarve9 1:1fd6658651c4 252 led5 = mal & 0x10;
abarve9 1:1fd6658651c4 253 led4 = mal & 0x08;
abarve9 1:1fd6658651c4 254 led3 = mal & 0x04;
abarve9 1:1fd6658651c4 255 led2 = mal & 0x02;
abarve9 1:1fd6658651c4 256 led1 = mal & 0x01;
abarve9 1:1fd6658651c4 257 wait(waitvalue);
abarve9 1:1fd6658651c4 258 }
abarve9 1:1fd6658651c4 259 led8 = 0;
abarve9 1:1fd6658651c4 260 led7 = 0;
abarve9 1:1fd6658651c4 261 led6 = 0;
abarve9 1:1fd6658651c4 262 led5 = 0;
abarve9 1:1fd6658651c4 263 led4 = 0;
abarve9 1:1fd6658651c4 264 led3 = 0;
abarve9 1:1fd6658651c4 265 led2 = 0;
abarve9 1:1fd6658651c4 266 led1 = 0;
abarve9 1:1fd6658651c4 267 wait(waitvalue);
abarve9 1:1fd6658651c4 268 i++;
abarve9 1:1fd6658651c4 269 }
abarve9 1:1fd6658651c4 270 do {
abarve9 1:1fd6658651c4 271 accelerometer.getOutput(readings);
abarve9 1:1fd6658651c4 272 if(xbee2.readable())
abarve9 1:1fd6658651c4 273 break;
abarve9 1:1fd6658651c4 274 } while((int16_t)readings[1] > -50);
abarve9 1:1fd6658651c4 275 }
abarve9 1:1fd6658651c4 276 }
abarve9 1:1fd6658651c4 277 }