This consists of code to receive the characters transmitted via zigbee and display them on shiftbrite RGB LEDs with color properties.
main.cpp@0:b4494ee6461c, 2012-12-07 (annotated)
- Committer:
- abarve9
- Date:
- Fri Dec 07 07:41:04 2012 +0000
- Revision:
- 0:b4494ee6461c
This consists of code to receive the characters transmitted via zigbee and display them on shiftbrite RGB LEDs with color properties.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
abarve9 | 0:b4494ee6461c | 1 | #include "ADXL345.h" |
abarve9 | 0:b4494ee6461c | 2 | #include "mbed.h" |
abarve9 | 0:b4494ee6461c | 3 | #include "iostream" |
abarve9 | 0:b4494ee6461c | 4 | #include "stdio.h" |
abarve9 | 0:b4494ee6461c | 5 | #include "stdlib.h" |
abarve9 | 0:b4494ee6461c | 6 | #include "string" |
abarve9 | 0:b4494ee6461c | 7 | |
abarve9 | 0:b4494ee6461c | 8 | using namespace std; |
abarve9 | 0:b4494ee6461c | 9 | |
abarve9 | 0:b4494ee6461c | 10 | PortOut ledport(Port1, 0xFFFFFFFF); |
abarve9 | 0:b4494ee6461c | 11 | ADXL345 accelerometer(p5, p6, p7, p8); |
abarve9 | 0:b4494ee6461c | 12 | //Serial pc(USBTX, USBRX); |
abarve9 | 0:b4494ee6461c | 13 | //---shiftbrite |
abarve9 | 0:b4494ee6461c | 14 | DigitalOut latch(p15); |
abarve9 | 0:b4494ee6461c | 15 | DigitalOut enable(p16); |
abarve9 | 0:b4494ee6461c | 16 | SPI spi(p11, p12, p13); |
abarve9 | 0:b4494ee6461c | 17 | |
abarve9 | 0:b4494ee6461c | 18 | DigitalOut led8(p28); |
abarve9 | 0:b4494ee6461c | 19 | DigitalOut led7(p27); |
abarve9 | 0:b4494ee6461c | 20 | DigitalOut led6(p26); |
abarve9 | 0:b4494ee6461c | 21 | DigitalOut led5(p25); |
abarve9 | 0:b4494ee6461c | 22 | DigitalOut led4(p24); |
abarve9 | 0:b4494ee6461c | 23 | DigitalOut led3(p23); |
abarve9 | 0:b4494ee6461c | 24 | DigitalOut led2(p22); |
abarve9 | 0:b4494ee6461c | 25 | DigitalOut led1(p21); |
abarve9 | 0:b4494ee6461c | 26 | |
abarve9 | 0:b4494ee6461c | 27 | // ------------------------- Zigbee ------------- |
abarve9 | 0:b4494ee6461c | 28 | |
abarve9 | 0:b4494ee6461c | 29 | Serial xbee2(p9, p10); |
abarve9 | 0:b4494ee6461c | 30 | DigitalOut rst1(p17); |
abarve9 | 0:b4494ee6461c | 31 | Serial pc1(USBTX, USBRX); |
abarve9 | 0:b4494ee6461c | 32 | DigitalOut myled(LED2); |
abarve9 | 0:b4494ee6461c | 33 | |
abarve9 | 0:b4494ee6461c | 34 | //----RGB Led function |
abarve9 | 0:b4494ee6461c | 35 | |
abarve9 | 0:b4494ee6461c | 36 | void RGB_LED(int red, int green, int blue) |
abarve9 | 0:b4494ee6461c | 37 | { |
abarve9 | 0:b4494ee6461c | 38 | unsigned int low_color=0; |
abarve9 | 0:b4494ee6461c | 39 | unsigned int high_color=0; |
abarve9 | 0:b4494ee6461c | 40 | high_color=(blue<<4)|((red&0x3C0)>>6); |
abarve9 | 0:b4494ee6461c | 41 | low_color=(((red&0x3F)<<10)|(green)); |
abarve9 | 0:b4494ee6461c | 42 | spi.write(high_color); |
abarve9 | 0:b4494ee6461c | 43 | spi.write(low_color); |
abarve9 | 0:b4494ee6461c | 44 | latch=1; |
abarve9 | 0:b4494ee6461c | 45 | latch=0; |
abarve9 | 0:b4494ee6461c | 46 | } |
abarve9 | 0:b4494ee6461c | 47 | |
abarve9 | 0:b4494ee6461c | 48 | int main() |
abarve9 | 0:b4494ee6461c | 49 | { |
abarve9 | 0:b4494ee6461c | 50 | int count=0; |
abarve9 | 0:b4494ee6461c | 51 | int readings[3] = {0, 0, 0}; |
abarve9 | 0:b4494ee6461c | 52 | //int del = 0; |
abarve9 | 0:b4494ee6461c | 53 | int16_t sum = 0; |
abarve9 | 0:b4494ee6461c | 54 | int16_t xval[50]; |
abarve9 | 0:b4494ee6461c | 55 | int i = 0; |
abarve9 | 0:b4494ee6461c | 56 | char text[30]; |
abarve9 | 0:b4494ee6461c | 57 | int len,len1; |
abarve9 | 0:b4494ee6461c | 58 | len1 = 0; |
abarve9 | 0:b4494ee6461c | 59 | len = 0; |
abarve9 | 0:b4494ee6461c | 60 | |
abarve9 | 0:b4494ee6461c | 61 | //---------SHift brite |
abarve9 | 0:b4494ee6461c | 62 | |
abarve9 | 0:b4494ee6461c | 63 | int red=0; |
abarve9 | 0:b4494ee6461c | 64 | int green=0; |
abarve9 | 0:b4494ee6461c | 65 | int blue=0; |
abarve9 | 0:b4494ee6461c | 66 | spi.format(16,0); |
abarve9 | 0:b4494ee6461c | 67 | spi.frequency(500000); |
abarve9 | 0:b4494ee6461c | 68 | enable=0; |
abarve9 | 0:b4494ee6461c | 69 | latch=0; |
abarve9 | 0:b4494ee6461c | 70 | |
abarve9 | 0:b4494ee6461c | 71 | // --------- Zigbee |
abarve9 | 0:b4494ee6461c | 72 | |
abarve9 | 0:b4494ee6461c | 73 | char character; |
abarve9 | 0:b4494ee6461c | 74 | rst1 = 0; //Set reset pin to 0 |
abarve9 | 0:b4494ee6461c | 75 | myled = 0; |
abarve9 | 0:b4494ee6461c | 76 | wait_ms(1); |
abarve9 | 0:b4494ee6461c | 77 | rst1 = 1; //Set reset pin to 1 |
abarve9 | 0:b4494ee6461c | 78 | wait_ms(1); |
abarve9 | 0:b4494ee6461c | 79 | |
abarve9 | 0:b4494ee6461c | 80 | char buffer[20]; |
abarve9 | 0:b4494ee6461c | 81 | int global = 0; |
abarve9 | 0:b4494ee6461c | 82 | |
abarve9 | 0:b4494ee6461c | 83 | //--- Zigbeeee |
abarve9 | 0:b4494ee6461c | 84 | |
abarve9 | 0:b4494ee6461c | 85 | const char font[0x60][5] = { |
abarve9 | 0:b4494ee6461c | 86 | |
abarve9 | 0:b4494ee6461c | 87 | {0x00,0x00,0x00,0x00,0x00}, // ASCII - 32 space |
abarve9 | 0:b4494ee6461c | 88 | {0x00,0x00,0xF9,0x00,0x00}, // ASCII - 33 ! |
abarve9 | 0:b4494ee6461c | 89 | {0x00,0xE0,0x00,0xE0,0x00}, // ASCII - 34 " |
abarve9 | 0:b4494ee6461c | 90 | {0x24,0x7E,0x24,0x7E,0x24}, // ASCII - 35 # |
abarve9 | 0:b4494ee6461c | 91 | {0x34,0x4A,0xFF,0x49,0x26}, // ASCII - 36 $ |
abarve9 | 0:b4494ee6461c | 92 | {0x22,0x04,0x08,0x10,0x22}, // ASCII - 37 % |
abarve9 | 0:b4494ee6461c | 93 | {0x26,0x59,0x4D,0x52,0x25}, // ASCII - 38 & |
abarve9 | 0:b4494ee6461c | 94 | {0x00,0x00,0xE0,0x00,0x00}, // ASCII - 39 ' |
abarve9 | 0:b4494ee6461c | 95 | {0x00,0x3C,0x42,0x81,0x00}, // ASCII - 40 ( |
abarve9 | 0:b4494ee6461c | 96 | {0x00,0x81,0x42,0x3C,0x00}, // ASCII - 41 ) |
abarve9 | 0:b4494ee6461c | 97 | {0x28,0x30,0xE0,0x30,0x28}, // ASCII - 42 * |
abarve9 | 0:b4494ee6461c | 98 | {0x08,0x08,0x3E,0x08,0x08}, // ASCII - 43 + |
abarve9 | 0:b4494ee6461c | 99 | {0x00,0x01,0x02,0x00,0x00}, // ASCII - 44 , |
abarve9 | 0:b4494ee6461c | 100 | {0x08,0x08,0x08,0x08,0x08}, // ASCII - 45 - |
abarve9 | 0:b4494ee6461c | 101 | {0x00,0x00,0x01,0x00,0x00}, // ASCII - 46 . |
abarve9 | 0:b4494ee6461c | 102 | {0x02,0x04,0x08,0x10,0x20}, // ASCII - 47 / |
abarve9 | 0:b4494ee6461c | 103 | {0x7E,0x81,0x81,0x81,0x7E}, // ASCII - 48 0 |
abarve9 | 0:b4494ee6461c | 104 | {0x00,0x21,0xFF,0x01,0x00}, // ASCII - 49 1 |
abarve9 | 0:b4494ee6461c | 105 | {0x41,0x83,0x85,0x89,0x71}, // ASCII - 50 2 |
abarve9 | 0:b4494ee6461c | 106 | {0x42,0x91,0x91,0x91,0x6E}, // ASCII - 51 3 |
abarve9 | 0:b4494ee6461c | 107 | {0xF0,0x10,0x10,0x10,0xFF}, // ASCII - 52 4 |
abarve9 | 0:b4494ee6461c | 108 | {0xF2,0x91,0x91,0x91,0x8E}, // ASCII - 53 5 |
abarve9 | 0:b4494ee6461c | 109 | {0x3E,0x51,0x91,0x91,0x8E}, // ASCII - 54 6 |
abarve9 | 0:b4494ee6461c | 110 | {0x87,0x88,0x90,0xA0,0xC0}, // ASCII - 55 7 |
abarve9 | 0:b4494ee6461c | 111 | {0x76,0x89,0x89,0x89,0x76}, // ASCII - 56 8 |
abarve9 | 0:b4494ee6461c | 112 | {0x62,0x91,0x91,0x91,0x7e}, // ASCII - 57 9 |
abarve9 | 0:b4494ee6461c | 113 | {0x00,0x00,0x24,0x00,0x00}, // ASCII - 58 : |
abarve9 | 0:b4494ee6461c | 114 | {0x00,0x01,0x12,0x00,0x00}, // ASCII - 59 ; |
abarve9 | 0:b4494ee6461c | 115 | {0x00,0x08,0x14,0x22,0x41}, // ASCII - 60 < |
abarve9 | 0:b4494ee6461c | 116 | {0x14,0x14,0x14,0x14,0x14}, // ASCII - 61 = |
abarve9 | 0:b4494ee6461c | 117 | {0x00,0x41,0x22,0x14,0x08}, // ASCII - 62 > |
abarve9 | 0:b4494ee6461c | 118 | {0x40,0x80,0x8D,0x90,0x60}, // ASCII - 63 ? |
abarve9 | 0:b4494ee6461c | 119 | {0x7E,0x81,0xBD,0xA5,0x78}, // ASCII - 64 @ |
abarve9 | 0:b4494ee6461c | 120 | {0x3F,0x48,0x88,0x48,0x3F}, // ASCII - 65 A |
abarve9 | 0:b4494ee6461c | 121 | {0xFF,0x91,0x91,0x99,0x66}, // ASCII - 66 B |
abarve9 | 0:b4494ee6461c | 122 | {0x3C,0x42,0x81,0x81,0x42}, // ASCII - 67 C |
abarve9 | 0:b4494ee6461c | 123 | {0xFF,0x81,0x81,0x42,0x3C}, // ASCII - 68 D |
abarve9 | 0:b4494ee6461c | 124 | {0xFF,0x91,0x91,0x91,0x81}, // ASCII - 69 E |
abarve9 | 0:b4494ee6461c | 125 | {0xFF,0x90,0x90,0x90,0x80}, // ASCII - 70 F |
abarve9 | 0:b4494ee6461c | 126 | {0x3E,0x41,0x8F,0x88,0x4F}, // ASCII - 71 G |
abarve9 | 0:b4494ee6461c | 127 | {0xFF,0x10,0x10,0x10,0xFF}, // ASCII - 72 H |
abarve9 | 0:b4494ee6461c | 128 | {0x00,0x81,0xFF,0x81,0x00}, // ASCII - 73 I |
abarve9 | 0:b4494ee6461c | 129 | {0x06,0x01,0x81,0xFE,0x80}, // ASCII - 74 J |
abarve9 | 0:b4494ee6461c | 130 | {0xFF,0x18,0x24,0x42,0x81}, // ASCII - 75 K |
abarve9 | 0:b4494ee6461c | 131 | {0xFF,0x01,0x01,0x01,0x01}, // ASCII - 76 L |
abarve9 | 0:b4494ee6461c | 132 | {0xFF,0x40,0x30,0x40,0xFF}, // ASCII - 77 M |
abarve9 | 0:b4494ee6461c | 133 | {0xFF,0x40,0x20,0x10,0xFF}, // ASCII - 78 N |
abarve9 | 0:b4494ee6461c | 134 | {0x7E,0x81,0x81,0x81,0x7E}, // ASCII - 79 O |
abarve9 | 0:b4494ee6461c | 135 | {0xFF,0x90,0x90,0x90,0x60}, // ASCII - 80 P |
abarve9 | 0:b4494ee6461c | 136 | {0x7E,0x81,0x85,0x82,0x7D}, // ASCII - 81 Q |
abarve9 | 0:b4494ee6461c | 137 | {0xFF,0x98,0x94,0x92,0x61}, // ASCII - 82 R |
abarve9 | 0:b4494ee6461c | 138 | {0x72,0x89,0x89,0x89,0x46}, // ASCII - 83 S |
abarve9 | 0:b4494ee6461c | 139 | {0x80,0x80,0xFF,0x80,0x80}, // ASCII - 84 T |
abarve9 | 0:b4494ee6461c | 140 | {0xFE,0x01,0x01,0x01,0xFE}, // ASCII - 85 U |
abarve9 | 0:b4494ee6461c | 141 | {0xFC,0x02,0x01,0x02,0xFC}, // ASCII - 86 V |
abarve9 | 0:b4494ee6461c | 142 | {0xFF,0x02,0x1C,0x02,0xFF}, // ASCII - 87 W |
abarve9 | 0:b4494ee6461c | 143 | {0xC3,0x24,0x18,0x24,0xC3}, // ASCII - 88 X |
abarve9 | 0:b4494ee6461c | 144 | {0xC0,0x20,0x1F,0x20,0xC0}, // ASCII - 89 Y |
abarve9 | 0:b4494ee6461c | 145 | {0x87,0x89,0x91,0xA1,0xC1}, // ASCII - 90 Z |
abarve9 | 0:b4494ee6461c | 146 | {0x00,0xFF,0x81,0x81,0x00}, // ASCII - 91 [ |
abarve9 | 0:b4494ee6461c | 147 | {0x20,0x10,0x08,0x04,0x02}, // ASCII - 92 '\' |
abarve9 | 0:b4494ee6461c | 148 | {0x00,0x81,0x81,0xFF,0x00}, // ASCII - 93 ] |
abarve9 | 0:b4494ee6461c | 149 | {0x20,0x40,0x80,0x40,0x20}, // ASCII - 94 ^ |
abarve9 | 0:b4494ee6461c | 150 | {0x01,0x01,0x01,0x01,0x01}, // ASCII - 95 _ |
abarve9 | 0:b4494ee6461c | 151 | {0x00,0x80,0x40,0x20,0x00}, // ASCII - 96 ` |
abarve9 | 0:b4494ee6461c | 152 | {0x26,0x29,0x29,0x1F,0x01}, // ASCII - 97 a |
abarve9 | 0:b4494ee6461c | 153 | {0xFF,0x11,0x11,0x11,0x0E}, // ASCII - 98 b |
abarve9 | 0:b4494ee6461c | 154 | {0x0E,0x11,0x11,0x11,0x11}, // ASCII - 99 c |
abarve9 | 0:b4494ee6461c | 155 | {0x0E,0x11,0x11,0x11,0xFF}, // ASCII - 500 d |
abarve9 | 0:b4494ee6461c | 156 | {0x0E,0x15,0x15,0x15,0x0D}, // ASCII - 101 e |
abarve9 | 0:b4494ee6461c | 157 | {0x10,0x10,0x7F,0x90,0x90}, // ASCII - 102 f |
abarve9 | 0:b4494ee6461c | 158 | {0x08,0x15,0x15,0x15,0x0E}, // ASCII - 103 g |
abarve9 | 0:b4494ee6461c | 159 | {0xFF,0x08,0x08,0x08,0x07}, // ASCII - 104 h |
abarve9 | 0:b4494ee6461c | 160 | {0x00,0x00,0x9F,0x00,0x00}, // ASCII - 105 i |
abarve9 | 0:b4494ee6461c | 161 | {0x02,0x01,0x01,0x9F,0x00}, // ASCII - 106 j |
abarve9 | 0:b4494ee6461c | 162 | {0xFF,0x04,0x0A,0x11,0x00}, // ASCII - 107 k |
abarve9 | 0:b4494ee6461c | 163 | {0x00,0x01,0xFF,0x01,0x00}, // ASCII - 108 l |
abarve9 | 0:b4494ee6461c | 164 | {0x1F,0x10,0x0F,0x10,0x0F}, // ASCII - 109 m |
abarve9 | 0:b4494ee6461c | 165 | {0x10,0x0F,0x10,0x10,0x0F}, // ASCII - 110 n |
abarve9 | 0:b4494ee6461c | 166 | {0x0E,0x11,0x11,0x11,0x0E}, // ASCII - 111 o |
abarve9 | 0:b4494ee6461c | 167 | {0x1F,0x14,0x14,0x14,0x08}, // ASCII - 112 p |
abarve9 | 0:b4494ee6461c | 168 | {0x08,0x14,0x14,0x14,0x1F}, // ASCII - 113 q |
abarve9 | 0:b4494ee6461c | 169 | {0x1F,0x08,0x10,0x10,0x08}, // ASCII - 114 r |
abarve9 | 0:b4494ee6461c | 170 | {0x09,0x15,0x15,0x15,0x12}, // ASCII - 115 s |
abarve9 | 0:b4494ee6461c | 171 | {0x10,0x10,0x7F,0x11,0x12}, // ASCII - 116 t |
abarve9 | 0:b4494ee6461c | 172 | {0x1F,0x01,0x01,0x1F,0x01}, // ASCII - 117 u |
abarve9 | 0:b4494ee6461c | 173 | {0x1C,0x02,0x01,0x02,0x1C}, // ASCII - 118 v |
abarve9 | 0:b4494ee6461c | 174 | {0x1E,0x01,0x0F,0x01,0x1E}, // ASCII - 119 w |
abarve9 | 0:b4494ee6461c | 175 | {0x11,0x0A,0x04,0x0A,0x11}, // ASCII - 120 x |
abarve9 | 0:b4494ee6461c | 176 | {0x11,0x0A,0x04,0x08,0x10}, // ASCII - 121 y |
abarve9 | 0:b4494ee6461c | 177 | {0x11,0x13,0x15,0x19,0x11}, // ASCII - 122 z |
abarve9 | 0:b4494ee6461c | 178 | {0x18,0x66,0x81,0x81,0x00}, // ASCII - 123 { |
abarve9 | 0:b4494ee6461c | 179 | {0x00,0x00,0xFF,0x00,0x00}, // ASCII - 124 | |
abarve9 | 0:b4494ee6461c | 180 | {0x00,0x81,0x81,0x66,0x18}, // ASCII - 125 } |
abarve9 | 0:b4494ee6461c | 181 | {0x0C,0x10,0x08,0x04,0x18}, // ASCII - 126 ~ |
abarve9 | 0:b4494ee6461c | 182 | }; |
abarve9 | 0:b4494ee6461c | 183 | |
abarve9 | 0:b4494ee6461c | 184 | char currentchar = 0; |
abarve9 | 0:b4494ee6461c | 185 | int LED_MASK = 0xFFFFFFFF; |
abarve9 | 0:b4494ee6461c | 186 | |
abarve9 | 0:b4494ee6461c | 187 | |
abarve9 | 0:b4494ee6461c | 188 | //pc.printf("Starting ADXL345 test...\r\n"); |
abarve9 | 0:b4494ee6461c | 189 | // pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId()); |
abarve9 | 0:b4494ee6461c | 190 | wait(3); |
abarve9 | 0:b4494ee6461c | 191 | |
abarve9 | 0:b4494ee6461c | 192 | //Go into standby mode to configure the device. |
abarve9 | 0:b4494ee6461c | 193 | accelerometer.setPowerControl(0x00); |
abarve9 | 0:b4494ee6461c | 194 | |
abarve9 | 0:b4494ee6461c | 195 | //Full resolution, +/-16g, 4mg/LSB. |
abarve9 | 0:b4494ee6461c | 196 | accelerometer.setDataFormatControl(0x0B); |
abarve9 | 0:b4494ee6461c | 197 | |
abarve9 | 0:b4494ee6461c | 198 | //3.2kHz data rate. |
abarve9 | 0:b4494ee6461c | 199 | accelerometer.setDataRate(ADXL345_3200HZ); |
abarve9 | 0:b4494ee6461c | 200 | |
abarve9 | 0:b4494ee6461c | 201 | //Measurement mode. |
abarve9 | 0:b4494ee6461c | 202 | accelerometer.setPowerControl(0x08); |
abarve9 | 0:b4494ee6461c | 203 | |
abarve9 | 0:b4494ee6461c | 204 | while (1) { |
abarve9 | 0:b4494ee6461c | 205 | global=0; |
abarve9 | 0:b4494ee6461c | 206 | |
abarve9 | 0:b4494ee6461c | 207 | while(1) { |
abarve9 | 0:b4494ee6461c | 208 | // test = xbee2.readable(); |
abarve9 | 0:b4494ee6461c | 209 | |
abarve9 | 0:b4494ee6461c | 210 | if(xbee2.readable()) { |
abarve9 | 0:b4494ee6461c | 211 | character = xbee2.getc(); |
abarve9 | 0:b4494ee6461c | 212 | |
abarve9 | 0:b4494ee6461c | 213 | if(character == 13) { |
abarve9 | 0:b4494ee6461c | 214 | |
abarve9 | 0:b4494ee6461c | 215 | buffer[global] = '\0'; |
abarve9 | 0:b4494ee6461c | 216 | break; |
abarve9 | 0:b4494ee6461c | 217 | } else { |
abarve9 | 0:b4494ee6461c | 218 | buffer[global]= character; |
abarve9 | 0:b4494ee6461c | 219 | global++; |
abarve9 | 0:b4494ee6461c | 220 | |
abarve9 | 0:b4494ee6461c | 221 | } |
abarve9 | 0:b4494ee6461c | 222 | } |
abarve9 | 0:b4494ee6461c | 223 | |
abarve9 | 0:b4494ee6461c | 224 | } |
abarve9 | 0:b4494ee6461c | 225 | |
abarve9 | 0:b4494ee6461c | 226 | pc1.printf("\n\rbuffer = %s\n\r" ,buffer); |
abarve9 | 0:b4494ee6461c | 227 | //pc1.printf(" \n\rBuffer = %s", buffer); |
abarve9 | 0:b4494ee6461c | 228 | len1 = strlen(buffer); |
abarve9 | 0:b4494ee6461c | 229 | |
abarve9 | 0:b4494ee6461c | 230 | for( int m =0; m < (len1 + 2); m++) { |
abarve9 | 0:b4494ee6461c | 231 | |
abarve9 | 0:b4494ee6461c | 232 | text[m] = 0x20; |
abarve9 | 0:b4494ee6461c | 233 | } |
abarve9 | 0:b4494ee6461c | 234 | |
abarve9 | 0:b4494ee6461c | 235 | for( int m =(len1 + 2); m <( 2*len1 + 2); m++) { |
abarve9 | 0:b4494ee6461c | 236 | |
abarve9 | 0:b4494ee6461c | 237 | text[m] = buffer[m - (len1 +2)]; |
abarve9 | 0:b4494ee6461c | 238 | } |
abarve9 | 0:b4494ee6461c | 239 | |
abarve9 | 0:b4494ee6461c | 240 | text[2*len1 + 2] = '\0'; |
abarve9 | 0:b4494ee6461c | 241 | len = strlen(text); |
abarve9 | 0:b4494ee6461c | 242 | for(int p =0; p <len; p++) { |
abarve9 | 0:b4494ee6461c | 243 | pc1.printf("%c", text[p]); |
abarve9 | 0:b4494ee6461c | 244 | } |
abarve9 | 0:b4494ee6461c | 245 | pc1.printf("\n\rstrlen(text) = %d", len); |
abarve9 | 0:b4494ee6461c | 246 | float waitvalue = 0.08 / ((6*len)); |
abarve9 | 0:b4494ee6461c | 247 | |
abarve9 | 0:b4494ee6461c | 248 | |
abarve9 | 0:b4494ee6461c | 249 | |
abarve9 | 0:b4494ee6461c | 250 | while(!(xbee2.readable())) { |
abarve9 | 0:b4494ee6461c | 251 | red = 0; |
abarve9 | 0:b4494ee6461c | 252 | green = 0; |
abarve9 | 0:b4494ee6461c | 253 | blue = 0; |
abarve9 | 0:b4494ee6461c | 254 | |
abarve9 | 0:b4494ee6461c | 255 | |
abarve9 | 0:b4494ee6461c | 256 | do { |
abarve9 | 0:b4494ee6461c | 257 | accelerometer.getOutput(readings); |
abarve9 | 0:b4494ee6461c | 258 | if(xbee2.readable()) |
abarve9 | 0:b4494ee6461c | 259 | break; |
abarve9 | 0:b4494ee6461c | 260 | } while((int16_t)readings[1] < 50); |
abarve9 | 0:b4494ee6461c | 261 | i = 0; |
abarve9 | 0:b4494ee6461c | 262 | |
abarve9 | 0:b4494ee6461c | 263 | while(text[i] != '\0') { |
abarve9 | 0:b4494ee6461c | 264 | |
abarve9 | 0:b4494ee6461c | 265 | /*led8 = 0; |
abarve9 | 0:b4494ee6461c | 266 | led7 = 0; |
abarve9 | 0:b4494ee6461c | 267 | led6 = 0; |
abarve9 | 0:b4494ee6461c | 268 | led5 = 0; |
abarve9 | 0:b4494ee6461c | 269 | led4 = 0; |
abarve9 | 0:b4494ee6461c | 270 | led3 = 0; |
abarve9 | 0:b4494ee6461c | 271 | led2 = 0; |
abarve9 | 0:b4494ee6461c | 272 | led1 = 0;*/ |
abarve9 | 0:b4494ee6461c | 273 | for( int m=0; m < 8; m++) { |
abarve9 | 0:b4494ee6461c | 274 | red = 0; |
abarve9 | 0:b4494ee6461c | 275 | green = 0; |
abarve9 | 0:b4494ee6461c | 276 | blue = 0; |
abarve9 | 0:b4494ee6461c | 277 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 278 | } |
abarve9 | 0:b4494ee6461c | 279 | wait(waitvalue); |
abarve9 | 0:b4494ee6461c | 280 | currentchar = text[i]; |
abarve9 | 0:b4494ee6461c | 281 | |
abarve9 | 0:b4494ee6461c | 282 | for( int m =0; m <5; m++) { |
abarve9 | 0:b4494ee6461c | 283 | char mal = font[currentchar - 0x20][m]; |
abarve9 | 0:b4494ee6461c | 284 | led8 = mal & 0x80; |
abarve9 | 0:b4494ee6461c | 285 | led7 = mal & 0x40; |
abarve9 | 0:b4494ee6461c | 286 | led6 = mal & 0x20; |
abarve9 | 0:b4494ee6461c | 287 | led5 = mal & 0x10; |
abarve9 | 0:b4494ee6461c | 288 | led4 = mal & 0x08; |
abarve9 | 0:b4494ee6461c | 289 | led3 = mal & 0x04; |
abarve9 | 0:b4494ee6461c | 290 | led2 = mal & 0x02; |
abarve9 | 0:b4494ee6461c | 291 | led1 = mal & 0x01; |
abarve9 | 0:b4494ee6461c | 292 | if(led8 == 1) { |
abarve9 | 0:b4494ee6461c | 293 | green = 0; |
abarve9 | 0:b4494ee6461c | 294 | red = 500; |
abarve9 | 0:b4494ee6461c | 295 | blue = 0; |
abarve9 | 0:b4494ee6461c | 296 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 297 | } else { |
abarve9 | 0:b4494ee6461c | 298 | |
abarve9 | 0:b4494ee6461c | 299 | red = 0; |
abarve9 | 0:b4494ee6461c | 300 | green = 0; |
abarve9 | 0:b4494ee6461c | 301 | blue = 0; |
abarve9 | 0:b4494ee6461c | 302 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 303 | |
abarve9 | 0:b4494ee6461c | 304 | } |
abarve9 | 0:b4494ee6461c | 305 | |
abarve9 | 0:b4494ee6461c | 306 | if(led7 == 1) { |
abarve9 | 0:b4494ee6461c | 307 | green = 0; |
abarve9 | 0:b4494ee6461c | 308 | red = 500; |
abarve9 | 0:b4494ee6461c | 309 | blue = 0; |
abarve9 | 0:b4494ee6461c | 310 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 311 | } else { |
abarve9 | 0:b4494ee6461c | 312 | |
abarve9 | 0:b4494ee6461c | 313 | red = 0; |
abarve9 | 0:b4494ee6461c | 314 | green = 0; |
abarve9 | 0:b4494ee6461c | 315 | blue = 0; |
abarve9 | 0:b4494ee6461c | 316 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 317 | |
abarve9 | 0:b4494ee6461c | 318 | } |
abarve9 | 0:b4494ee6461c | 319 | |
abarve9 | 0:b4494ee6461c | 320 | if(led6 == 1) { |
abarve9 | 0:b4494ee6461c | 321 | green = 0; |
abarve9 | 0:b4494ee6461c | 322 | red = 500; |
abarve9 | 0:b4494ee6461c | 323 | blue = 0; |
abarve9 | 0:b4494ee6461c | 324 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 325 | } else { |
abarve9 | 0:b4494ee6461c | 326 | |
abarve9 | 0:b4494ee6461c | 327 | red = 0; |
abarve9 | 0:b4494ee6461c | 328 | green = 0; |
abarve9 | 0:b4494ee6461c | 329 | blue = 0; |
abarve9 | 0:b4494ee6461c | 330 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 331 | |
abarve9 | 0:b4494ee6461c | 332 | } |
abarve9 | 0:b4494ee6461c | 333 | |
abarve9 | 0:b4494ee6461c | 334 | if(led5 == 1) { |
abarve9 | 0:b4494ee6461c | 335 | green = 500; |
abarve9 | 0:b4494ee6461c | 336 | red = 0; |
abarve9 | 0:b4494ee6461c | 337 | blue = 0; |
abarve9 | 0:b4494ee6461c | 338 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 339 | } else { |
abarve9 | 0:b4494ee6461c | 340 | |
abarve9 | 0:b4494ee6461c | 341 | red = 0; |
abarve9 | 0:b4494ee6461c | 342 | green = 0; |
abarve9 | 0:b4494ee6461c | 343 | blue = 0; |
abarve9 | 0:b4494ee6461c | 344 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 345 | |
abarve9 | 0:b4494ee6461c | 346 | } |
abarve9 | 0:b4494ee6461c | 347 | |
abarve9 | 0:b4494ee6461c | 348 | if(led4 == 1) { |
abarve9 | 0:b4494ee6461c | 349 | green = 500; |
abarve9 | 0:b4494ee6461c | 350 | red = 0; |
abarve9 | 0:b4494ee6461c | 351 | blue = 0; |
abarve9 | 0:b4494ee6461c | 352 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 353 | } else { |
abarve9 | 0:b4494ee6461c | 354 | |
abarve9 | 0:b4494ee6461c | 355 | red = 0; |
abarve9 | 0:b4494ee6461c | 356 | green = 0; |
abarve9 | 0:b4494ee6461c | 357 | blue = 0; |
abarve9 | 0:b4494ee6461c | 358 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 359 | |
abarve9 | 0:b4494ee6461c | 360 | } |
abarve9 | 0:b4494ee6461c | 361 | |
abarve9 | 0:b4494ee6461c | 362 | if(led3 == 1) { |
abarve9 | 0:b4494ee6461c | 363 | green = 500; |
abarve9 | 0:b4494ee6461c | 364 | red = 0; |
abarve9 | 0:b4494ee6461c | 365 | blue = 0; |
abarve9 | 0:b4494ee6461c | 366 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 367 | } else { |
abarve9 | 0:b4494ee6461c | 368 | |
abarve9 | 0:b4494ee6461c | 369 | red = 0; |
abarve9 | 0:b4494ee6461c | 370 | green = 0; |
abarve9 | 0:b4494ee6461c | 371 | blue = 0; |
abarve9 | 0:b4494ee6461c | 372 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 373 | |
abarve9 | 0:b4494ee6461c | 374 | } |
abarve9 | 0:b4494ee6461c | 375 | |
abarve9 | 0:b4494ee6461c | 376 | if(led2 == 1) { |
abarve9 | 0:b4494ee6461c | 377 | green = 0; |
abarve9 | 0:b4494ee6461c | 378 | red = 0; |
abarve9 | 0:b4494ee6461c | 379 | blue = 500; |
abarve9 | 0:b4494ee6461c | 380 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 381 | } else { |
abarve9 | 0:b4494ee6461c | 382 | |
abarve9 | 0:b4494ee6461c | 383 | red = 0; |
abarve9 | 0:b4494ee6461c | 384 | green = 0; |
abarve9 | 0:b4494ee6461c | 385 | blue = 0; |
abarve9 | 0:b4494ee6461c | 386 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 387 | |
abarve9 | 0:b4494ee6461c | 388 | } |
abarve9 | 0:b4494ee6461c | 389 | |
abarve9 | 0:b4494ee6461c | 390 | if(led1 == 1) { |
abarve9 | 0:b4494ee6461c | 391 | green = 0; |
abarve9 | 0:b4494ee6461c | 392 | red = 0; |
abarve9 | 0:b4494ee6461c | 393 | blue = 500; |
abarve9 | 0:b4494ee6461c | 394 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 395 | } else { |
abarve9 | 0:b4494ee6461c | 396 | |
abarve9 | 0:b4494ee6461c | 397 | red = 0; |
abarve9 | 0:b4494ee6461c | 398 | green = 0; |
abarve9 | 0:b4494ee6461c | 399 | blue = 0; |
abarve9 | 0:b4494ee6461c | 400 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 401 | |
abarve9 | 0:b4494ee6461c | 402 | } |
abarve9 | 0:b4494ee6461c | 403 | wait(waitvalue); |
abarve9 | 0:b4494ee6461c | 404 | |
abarve9 | 0:b4494ee6461c | 405 | } |
abarve9 | 0:b4494ee6461c | 406 | /*led8 = 0; |
abarve9 | 0:b4494ee6461c | 407 | led7 = 0; |
abarve9 | 0:b4494ee6461c | 408 | led6 = 0; |
abarve9 | 0:b4494ee6461c | 409 | led5 = 0; |
abarve9 | 0:b4494ee6461c | 410 | led4 = 0; |
abarve9 | 0:b4494ee6461c | 411 | led3 = 0; |
abarve9 | 0:b4494ee6461c | 412 | led2 = 0; |
abarve9 | 0:b4494ee6461c | 413 | led1 = 0;*/ |
abarve9 | 0:b4494ee6461c | 414 | for( int j=0; j< 8; j++) { |
abarve9 | 0:b4494ee6461c | 415 | red = 0; |
abarve9 | 0:b4494ee6461c | 416 | green = 0; |
abarve9 | 0:b4494ee6461c | 417 | blue = 0; |
abarve9 | 0:b4494ee6461c | 418 | RGB_LED(red,green,blue); |
abarve9 | 0:b4494ee6461c | 419 | } |
abarve9 | 0:b4494ee6461c | 420 | wait(waitvalue); |
abarve9 | 0:b4494ee6461c | 421 | i++; |
abarve9 | 0:b4494ee6461c | 422 | } |
abarve9 | 0:b4494ee6461c | 423 | do { |
abarve9 | 0:b4494ee6461c | 424 | accelerometer.getOutput(readings); |
abarve9 | 0:b4494ee6461c | 425 | if(xbee2.readable()) |
abarve9 | 0:b4494ee6461c | 426 | break; |
abarve9 | 0:b4494ee6461c | 427 | } while((int16_t)readings[1] > -50); |
abarve9 | 0:b4494ee6461c | 428 | } |
abarve9 | 0:b4494ee6461c | 429 | } |
abarve9 | 0:b4494ee6461c | 430 | } |