Aditya Barve / Mbed 2 deprecated Receiver_red_led

Dependencies:   ADXL345 mbed

Fork of ADXL345_HelloWorld by Aaron Berk

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 #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 }