ECE 4180 Final Project
Dependencies: 4DGL-uLCD-SE mbed
main.cpp@2:4d9a4421fc08, 2015-12-08 (annotated)
- Committer:
- dbegasse
- Date:
- Tue Dec 08 15:44:18 2015 +0000
- Revision:
- 2:4d9a4421fc08
- Parent:
- 1:f7383e13e64f
ECE 4180 Final Project: XBee iMessage
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dbegasse | 0:69cae396d104 | 1 | //Daniel Begasse |
dbegasse | 2:4d9a4421fc08 | 2 | //Keith Ng |
dbegasse | 2:4d9a4421fc08 | 3 | //This is our ECE 4180 Final Project |
dbegasse | 2:4d9a4421fc08 | 4 | //We use the uLCD, MPR121 Capacitive Touch Pad, XBee, and a pushbutton to send text messages between two identical breadboards |
dbegasse | 0:69cae396d104 | 5 | |
dbegasse | 0:69cae396d104 | 6 | #include "mbed.h" |
dbegasse | 0:69cae396d104 | 7 | #include "uLCD_4DGL.h" |
dbegasse | 0:69cae396d104 | 8 | #include <stdio.h> |
dbegasse | 0:69cae396d104 | 9 | #include <stdlib.h> |
dbegasse | 0:69cae396d104 | 10 | #include <mpr121.h> |
dbegasse | 0:69cae396d104 | 11 | #include <iostream> |
dbegasse | 0:69cae396d104 | 12 | #include <string> |
dbegasse | 0:69cae396d104 | 13 | |
dbegasse | 0:69cae396d104 | 14 | using namespace std; |
dbegasse | 0:69cae396d104 | 15 | |
dbegasse | 0:69cae396d104 | 16 | //Set up the interrupt pin |
dbegasse | 0:69cae396d104 | 17 | InterruptIn interrupt(p26); |
dbegasse | 0:69cae396d104 | 18 | |
dbegasse | 0:69cae396d104 | 19 | // Setup the i2c bus on pins 9 and 10 |
dbegasse | 0:69cae396d104 | 20 | I2C i2c(p9, p10); |
dbegasse | 0:69cae396d104 | 21 | |
dbegasse | 0:69cae396d104 | 22 | // constructor(i2c object, i2c address of the mpr121) |
dbegasse | 0:69cae396d104 | 23 | Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); |
dbegasse | 0:69cae396d104 | 24 | |
dbegasse | 0:69cae396d104 | 25 | //create a global lcd project |
dbegasse | 0:69cae396d104 | 26 | uLCD_4DGL uLCD(p28, p27, p30); |
dbegasse | 0:69cae396d104 | 27 | |
dbegasse | 0:69cae396d104 | 28 | // Setup the Serial to the PC for debugging |
dbegasse | 0:69cae396d104 | 29 | Serial pc(USBTX, USBRX); |
dbegasse | 0:69cae396d104 | 30 | |
dbegasse | 1:f7383e13e64f | 31 | //Set up XBee |
dbegasse | 1:f7383e13e64f | 32 | Serial xbee(p13, p14); |
dbegasse | 1:f7383e13e64f | 33 | DigitalOut rst1(p11); |
dbegasse | 1:f7383e13e64f | 34 | |
dbegasse | 1:f7383e13e64f | 35 | DigitalOut led1(LED1); |
dbegasse | 1:f7383e13e64f | 36 | DigitalOut led2(LED2); |
dbegasse | 1:f7383e13e64f | 37 | DigitalOut led3(LED3); |
dbegasse | 1:f7383e13e64f | 38 | DigitalOut led4(LED4); |
dbegasse | 1:f7383e13e64f | 39 | DigitalIn send(p21); |
dbegasse | 1:f7383e13e64f | 40 | |
dbegasse | 0:69cae396d104 | 41 | volatile bool tripped = false; |
dbegasse | 0:69cae396d104 | 42 | volatile bool validkey;//This represents if the key pressed was a valid key |
dbegasse | 0:69cae396d104 | 43 | volatile int oldpressed;//This is the previous key that was pressed |
dbegasse | 0:69cae396d104 | 44 | volatile int value;//This is the value coming in from the register |
dbegasse | 0:69cae396d104 | 45 | volatile int pressed;//This is the current key being pressed |
dbegasse | 0:69cae396d104 | 46 | volatile int pressedcount = 0;//This is how many times the current key has been repeatedly pressed |
dbegasse | 2:4d9a4421fc08 | 47 | int cursor_row = 13; |
dbegasse | 0:69cae396d104 | 48 | int cursor_col = 0; |
dbegasse | 2:4d9a4421fc08 | 49 | int read_row = 0; |
dbegasse | 2:4d9a4421fc08 | 50 | int read_col = 0; |
dbegasse | 2:4d9a4421fc08 | 51 | string message_send = "- "; |
dbegasse | 2:4d9a4421fc08 | 52 | string message_receive = " "; |
dbegasse | 0:69cae396d104 | 53 | int char_count = 0;//This is the number of times the space button has been pressed for the current message |
dbegasse | 2:4d9a4421fc08 | 54 | unsigned size; |
dbegasse | 2:4d9a4421fc08 | 55 | int received_count = 0; |
dbegasse | 0:69cae396d104 | 56 | |
dbegasse | 1:f7383e13e64f | 57 | bool sent = false; |
dbegasse | 1:f7383e13e64f | 58 | |
dbegasse | 0:69cae396d104 | 59 | char key_1[1] = {'1'}; |
dbegasse | 0:69cae396d104 | 60 | char key_2[4] = {'a','b','c','2'}; |
dbegasse | 0:69cae396d104 | 61 | char key_3[4] = {'d','e','f','3'}; |
dbegasse | 0:69cae396d104 | 62 | char key_4[4] = {'g','h','i','4'}; |
dbegasse | 0:69cae396d104 | 63 | char key_5[4] = {'j','k','l','5'}; |
dbegasse | 0:69cae396d104 | 64 | char key_6[4] = {'m','n','o','6'}; |
dbegasse | 0:69cae396d104 | 65 | char key_7[5] = {'p','q','r','s','7'}; |
dbegasse | 0:69cae396d104 | 66 | char key_8[4] = {'t','u','v','8'}; |
dbegasse | 0:69cae396d104 | 67 | char key_9[5] = {'w','x','y','z','9'}; |
dbegasse | 0:69cae396d104 | 68 | char key_10[1] = {' '}; |
dbegasse | 0:69cae396d104 | 69 | |
dbegasse | 0:69cae396d104 | 70 | void fallInterrupt() { |
dbegasse | 0:69cae396d104 | 71 | |
dbegasse | 0:69cae396d104 | 72 | validkey = false;//Each key pressed is invalid until proven to be valid |
dbegasse | 0:69cae396d104 | 73 | value = mpr121.read(0x00); |
dbegasse | 0:69cae396d104 | 74 | value += mpr121.read(0x01)<<8; |
dbegasse | 0:69cae396d104 | 75 | |
dbegasse | 0:69cae396d104 | 76 | //Take the value from the register and use it to assign a key # |
dbegasse | 0:69cae396d104 | 77 | switch(value){ |
dbegasse | 0:69cae396d104 | 78 | |
dbegasse | 0:69cae396d104 | 79 | case (0x1): |
dbegasse | 0:69cae396d104 | 80 | pressed = 10; |
dbegasse | 0:69cae396d104 | 81 | validkey = true; |
dbegasse | 0:69cae396d104 | 82 | break; |
dbegasse | 0:69cae396d104 | 83 | case (0x10): |
dbegasse | 0:69cae396d104 | 84 | pressed = 11; |
dbegasse | 0:69cae396d104 | 85 | validkey = true; |
dbegasse | 0:69cae396d104 | 86 | break; |
dbegasse | 0:69cae396d104 | 87 | case (0x100): |
dbegasse | 0:69cae396d104 | 88 | pressed = 12; |
dbegasse | 0:69cae396d104 | 89 | validkey = true; |
dbegasse | 0:69cae396d104 | 90 | break; |
dbegasse | 0:69cae396d104 | 91 | case (0x2): |
dbegasse | 0:69cae396d104 | 92 | pressed = 7; |
dbegasse | 0:69cae396d104 | 93 | validkey = true; |
dbegasse | 0:69cae396d104 | 94 | break; |
dbegasse | 0:69cae396d104 | 95 | case (0x20): |
dbegasse | 0:69cae396d104 | 96 | pressed = 8; |
dbegasse | 0:69cae396d104 | 97 | validkey = true; |
dbegasse | 0:69cae396d104 | 98 | break; |
dbegasse | 0:69cae396d104 | 99 | case (0x200): |
dbegasse | 0:69cae396d104 | 100 | pressed = 9; |
dbegasse | 0:69cae396d104 | 101 | validkey = true; |
dbegasse | 0:69cae396d104 | 102 | break; |
dbegasse | 0:69cae396d104 | 103 | case (0x4): |
dbegasse | 0:69cae396d104 | 104 | pressed = 4; |
dbegasse | 0:69cae396d104 | 105 | validkey = true; |
dbegasse | 0:69cae396d104 | 106 | break; |
dbegasse | 0:69cae396d104 | 107 | case (0x40): |
dbegasse | 0:69cae396d104 | 108 | pressed = 5; |
dbegasse | 0:69cae396d104 | 109 | validkey = true; |
dbegasse | 0:69cae396d104 | 110 | break; |
dbegasse | 0:69cae396d104 | 111 | case (0x400): |
dbegasse | 0:69cae396d104 | 112 | pressed = 6; |
dbegasse | 0:69cae396d104 | 113 | validkey = true; |
dbegasse | 0:69cae396d104 | 114 | break; |
dbegasse | 0:69cae396d104 | 115 | case (0x8): |
dbegasse | 0:69cae396d104 | 116 | pressed = 1; |
dbegasse | 0:69cae396d104 | 117 | validkey = true; |
dbegasse | 0:69cae396d104 | 118 | break; |
dbegasse | 0:69cae396d104 | 119 | case (0x80): |
dbegasse | 0:69cae396d104 | 120 | pressed = 2; |
dbegasse | 0:69cae396d104 | 121 | validkey = true; |
dbegasse | 0:69cae396d104 | 122 | break; |
dbegasse | 0:69cae396d104 | 123 | case (0x800): |
dbegasse | 0:69cae396d104 | 124 | pressed = 3; |
dbegasse | 0:69cae396d104 | 125 | validkey = true; |
dbegasse | 0:69cae396d104 | 126 | break; |
dbegasse | 0:69cae396d104 | 127 | default: |
dbegasse | 0:69cae396d104 | 128 | validkey = false; |
dbegasse | 0:69cae396d104 | 129 | break; |
dbegasse | 0:69cae396d104 | 130 | } |
dbegasse | 1:f7383e13e64f | 131 | |
dbegasse | 0:69cae396d104 | 132 | //If the two values are different, assign pressed to oldpressed |
dbegasse | 0:69cae396d104 | 133 | if ((pressed != oldpressed) && (validkey == true) ){ |
dbegasse | 0:69cae396d104 | 134 | |
dbegasse | 0:69cae396d104 | 135 | oldpressed = pressed; |
dbegasse | 0:69cae396d104 | 136 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 137 | char_count++;//move the cursor over if there is a new key |
dbegasse | 0:69cae396d104 | 138 | } |
dbegasse | 0:69cae396d104 | 139 | |
dbegasse | 0:69cae396d104 | 140 | else if ((pressed == oldpressed) && (value != 0)) { |
dbegasse | 0:69cae396d104 | 141 | |
dbegasse | 1:f7383e13e64f | 142 | pressedcount++; |
dbegasse | 0:69cae396d104 | 143 | } |
dbegasse | 0:69cae396d104 | 144 | } |
dbegasse | 0:69cae396d104 | 145 | |
dbegasse | 0:69cae396d104 | 146 | void checkCharacter(){ |
dbegasse | 0:69cae396d104 | 147 | if (pressed == 1){ |
dbegasse | 0:69cae396d104 | 148 | if (pressedcount > 0){ |
dbegasse | 0:69cae396d104 | 149 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 150 | } |
dbegasse | 1:f7383e13e64f | 151 | message_send[char_count] = '1'; |
dbegasse | 0:69cae396d104 | 152 | } |
dbegasse | 0:69cae396d104 | 153 | |
dbegasse | 1:f7383e13e64f | 154 | if (pressed == 2){ |
dbegasse | 0:69cae396d104 | 155 | if (pressedcount > 3){ |
dbegasse | 0:69cae396d104 | 156 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 157 | } |
dbegasse | 1:f7383e13e64f | 158 | message_send[char_count] = key_2[pressedcount]; |
dbegasse | 0:69cae396d104 | 159 | } |
dbegasse | 0:69cae396d104 | 160 | |
dbegasse | 0:69cae396d104 | 161 | if (pressed == 3){ |
dbegasse | 0:69cae396d104 | 162 | if (pressedcount > 3){ |
dbegasse | 0:69cae396d104 | 163 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 164 | } |
dbegasse | 2:4d9a4421fc08 | 165 | message_send[char_count] = key_3[pressedcount]; |
dbegasse | 0:69cae396d104 | 166 | } |
dbegasse | 0:69cae396d104 | 167 | |
dbegasse | 0:69cae396d104 | 168 | if (pressed == 4){ |
dbegasse | 0:69cae396d104 | 169 | if (pressedcount > 3){ |
dbegasse | 0:69cae396d104 | 170 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 171 | } |
dbegasse | 2:4d9a4421fc08 | 172 | message_send[char_count] = key_4[pressedcount]; |
dbegasse | 0:69cae396d104 | 173 | } |
dbegasse | 0:69cae396d104 | 174 | |
dbegasse | 0:69cae396d104 | 175 | if (pressed == 5){ |
dbegasse | 0:69cae396d104 | 176 | if (pressedcount > 3){ |
dbegasse | 0:69cae396d104 | 177 | pressedcount = 0; |
dbegasse | 1:f7383e13e64f | 178 | } |
dbegasse | 2:4d9a4421fc08 | 179 | message_send[char_count] = key_5[pressedcount]; |
dbegasse | 0:69cae396d104 | 180 | } |
dbegasse | 0:69cae396d104 | 181 | |
dbegasse | 0:69cae396d104 | 182 | if (pressed == 6){ |
dbegasse | 0:69cae396d104 | 183 | if (pressedcount > 3){ |
dbegasse | 0:69cae396d104 | 184 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 185 | } |
dbegasse | 2:4d9a4421fc08 | 186 | message_send[char_count] = key_6[pressedcount]; |
dbegasse | 0:69cae396d104 | 187 | } |
dbegasse | 0:69cae396d104 | 188 | |
dbegasse | 0:69cae396d104 | 189 | if (pressed == 7){ |
dbegasse | 0:69cae396d104 | 190 | if (pressedcount > 4){ |
dbegasse | 0:69cae396d104 | 191 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 192 | } |
dbegasse | 2:4d9a4421fc08 | 193 | message_send[char_count] = key_7[pressedcount]; |
dbegasse | 0:69cae396d104 | 194 | } |
dbegasse | 0:69cae396d104 | 195 | |
dbegasse | 0:69cae396d104 | 196 | if (pressed == 8){ |
dbegasse | 0:69cae396d104 | 197 | if (pressedcount > 3){ |
dbegasse | 0:69cae396d104 | 198 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 199 | } |
dbegasse | 2:4d9a4421fc08 | 200 | message_send[char_count] = key_8[pressedcount]; |
dbegasse | 0:69cae396d104 | 201 | } |
dbegasse | 0:69cae396d104 | 202 | |
dbegasse | 0:69cae396d104 | 203 | if (pressed == 9){ |
dbegasse | 0:69cae396d104 | 204 | if (pressedcount > 4){ |
dbegasse | 0:69cae396d104 | 205 | pressedcount = 0; |
dbegasse | 0:69cae396d104 | 206 | } |
dbegasse | 2:4d9a4421fc08 | 207 | message_send[char_count] = key_9[pressedcount]; |
dbegasse | 0:69cae396d104 | 208 | } |
dbegasse | 0:69cae396d104 | 209 | |
dbegasse | 1:f7383e13e64f | 210 | if (pressed == 10) { |
dbegasse | 2:4d9a4421fc08 | 211 | message_send[char_count] = ' '; |
dbegasse | 2:4d9a4421fc08 | 212 | } |
dbegasse | 2:4d9a4421fc08 | 213 | if (pressed == 11) { |
dbegasse | 2:4d9a4421fc08 | 214 | if (pressedcount > 0){ |
dbegasse | 2:4d9a4421fc08 | 215 | pressedcount = 0; |
dbegasse | 2:4d9a4421fc08 | 216 | } |
dbegasse | 2:4d9a4421fc08 | 217 | message_send[char_count] = '0'; |
dbegasse | 1:f7383e13e64f | 218 | } |
dbegasse | 0:69cae396d104 | 219 | } |
dbegasse | 0:69cae396d104 | 220 | |
dbegasse | 0:69cae396d104 | 221 | void printMessage(){ |
dbegasse | 0:69cae396d104 | 222 | |
dbegasse | 2:4d9a4421fc08 | 223 | uLCD.locate(cursor_col, cursor_row); |
dbegasse | 0:69cae396d104 | 224 | |
dbegasse | 2:4d9a4421fc08 | 225 | //This will print the current message being typed towards the bottom of the lcd screen |
dbegasse | 2:4d9a4421fc08 | 226 | for ( unsigned i = 0; i <= char_count; i++ ){ |
dbegasse | 0:69cae396d104 | 227 | |
dbegasse | 2:4d9a4421fc08 | 228 | uLCD.printf("%c", message_send[i]); |
dbegasse | 2:4d9a4421fc08 | 229 | } |
dbegasse | 0:69cae396d104 | 230 | |
dbegasse | 2:4d9a4421fc08 | 231 | //If the message was just sent, |
dbegasse | 2:4d9a4421fc08 | 232 | if ( sent == true ){ |
dbegasse | 2:4d9a4421fc08 | 233 | |
dbegasse | 2:4d9a4421fc08 | 234 | uLCD.locate(0, cursor_row); |
dbegasse | 2:4d9a4421fc08 | 235 | |
dbegasse | 2:4d9a4421fc08 | 236 | for ( unsigned i = 1; i <= char_count+1; i++ ){ |
dbegasse | 2:4d9a4421fc08 | 237 | |
dbegasse | 2:4d9a4421fc08 | 238 | message_send[i] = ' ';//Overwrite all of the spots in the string with a space |
dbegasse | 2:4d9a4421fc08 | 239 | uLCD.printf("%c", message_send[i]); |
dbegasse | 2:4d9a4421fc08 | 240 | } |
dbegasse | 2:4d9a4421fc08 | 241 | char_count = 0; |
dbegasse | 2:4d9a4421fc08 | 242 | } |
dbegasse | 1:f7383e13e64f | 243 | } |
dbegasse | 1:f7383e13e64f | 244 | |
dbegasse | 1:f7383e13e64f | 245 | void write(){ |
dbegasse | 1:f7383e13e64f | 246 | |
dbegasse | 1:f7383e13e64f | 247 | char chartosend; |
dbegasse | 2:4d9a4421fc08 | 248 | |
dbegasse | 1:f7383e13e64f | 249 | for ( unsigned i = 0; i <= char_count; i++ ){ |
dbegasse | 1:f7383e13e64f | 250 | |
dbegasse | 1:f7383e13e64f | 251 | //Go through each char of message and send the char's 1 by 1 through the xbee |
dbegasse | 2:4d9a4421fc08 | 252 | chartosend = message_send[i]; |
dbegasse | 1:f7383e13e64f | 253 | xbee.printf("%c", chartosend); |
dbegasse | 1:f7383e13e64f | 254 | |
dbegasse | 1:f7383e13e64f | 255 | wait(0.01); |
dbegasse | 1:f7383e13e64f | 256 | led2 = 1; |
dbegasse | 1:f7383e13e64f | 257 | wait(0.01); |
dbegasse | 1:f7383e13e64f | 258 | led2 = 0; |
dbegasse | 1:f7383e13e64f | 259 | } |
dbegasse | 1:f7383e13e64f | 260 | } |
dbegasse | 1:f7383e13e64f | 261 | |
dbegasse | 1:f7383e13e64f | 262 | void read(){ |
dbegasse | 1:f7383e13e64f | 263 | |
dbegasse | 1:f7383e13e64f | 264 | char fromXBee; |
dbegasse | 1:f7383e13e64f | 265 | |
dbegasse | 2:4d9a4421fc08 | 266 | //led3 = 1; |
dbegasse | 2:4d9a4421fc08 | 267 | //wait(0.2); |
dbegasse | 2:4d9a4421fc08 | 268 | |
dbegasse | 1:f7383e13e64f | 269 | |
dbegasse | 1:f7383e13e64f | 270 | if(xbee.readable()) { |
dbegasse | 1:f7383e13e64f | 271 | |
dbegasse | 2:4d9a4421fc08 | 272 | uLCD.locate(received_count, read_row); |
dbegasse | 2:4d9a4421fc08 | 273 | |
dbegasse | 1:f7383e13e64f | 274 | led4 = 1; |
dbegasse | 1:f7383e13e64f | 275 | wait(0.2); |
dbegasse | 1:f7383e13e64f | 276 | |
dbegasse | 1:f7383e13e64f | 277 | fromXBee = xbee.getc(); //Get individual characters being sent by other xbee |
dbegasse | 2:4d9a4421fc08 | 278 | message_receive[received_count] = fromXBee; |
dbegasse | 2:4d9a4421fc08 | 279 | uLCD.printf("%c", message_receive[received_count]); |
dbegasse | 2:4d9a4421fc08 | 280 | |
dbegasse | 2:4d9a4421fc08 | 281 | received_count++; |
dbegasse | 2:4d9a4421fc08 | 282 | |
dbegasse | 2:4d9a4421fc08 | 283 | read(); |
dbegasse | 1:f7383e13e64f | 284 | |
dbegasse | 1:f7383e13e64f | 285 | led4 = 0; |
dbegasse | 2:4d9a4421fc08 | 286 | //wait(0.2); |
dbegasse | 1:f7383e13e64f | 287 | |
dbegasse | 1:f7383e13e64f | 288 | } |
dbegasse | 1:f7383e13e64f | 289 | |
dbegasse | 2:4d9a4421fc08 | 290 | //led3 = 0; |
dbegasse | 2:4d9a4421fc08 | 291 | //wait(0.2); |
dbegasse | 0:69cae396d104 | 292 | |
dbegasse | 0:69cae396d104 | 293 | } |
dbegasse | 0:69cae396d104 | 294 | |
dbegasse | 0:69cae396d104 | 295 | int main(){ |
dbegasse | 0:69cae396d104 | 296 | |
dbegasse | 1:f7383e13e64f | 297 | rst1 = 0; |
dbegasse | 1:f7383e13e64f | 298 | wait_ms(1); |
dbegasse | 1:f7383e13e64f | 299 | rst1 = 1; |
dbegasse | 1:f7383e13e64f | 300 | wait_ms(1); |
dbegasse | 1:f7383e13e64f | 301 | |
dbegasse | 0:69cae396d104 | 302 | pc.baud(9600); |
dbegasse | 0:69cae396d104 | 303 | |
dbegasse | 1:f7383e13e64f | 304 | send.mode(PullUp); |
dbegasse | 0:69cae396d104 | 305 | interrupt.mode(PullUp); |
dbegasse | 0:69cae396d104 | 306 | wait(.001); |
dbegasse | 0:69cae396d104 | 307 | interrupt.fall(&fallInterrupt); |
dbegasse | 0:69cae396d104 | 308 | |
dbegasse | 0:69cae396d104 | 309 | while(1){ |
dbegasse | 0:69cae396d104 | 310 | |
dbegasse | 0:69cae396d104 | 311 | checkCharacter(); |
dbegasse | 0:69cae396d104 | 312 | printMessage(); |
dbegasse | 0:69cae396d104 | 313 | |
dbegasse | 2:4d9a4421fc08 | 314 | sent = false; |
dbegasse | 1:f7383e13e64f | 315 | |
dbegasse | 1:f7383e13e64f | 316 | if ( send == 0 ){ |
dbegasse | 0:69cae396d104 | 317 | |
dbegasse | 1:f7383e13e64f | 318 | led2 = 1; |
dbegasse | 1:f7383e13e64f | 319 | write(); |
dbegasse | 2:4d9a4421fc08 | 320 | sent = true; |
dbegasse | 2:4d9a4421fc08 | 321 | pressed = 0; |
dbegasse | 2:4d9a4421fc08 | 322 | validkey = false; |
dbegasse | 0:69cae396d104 | 323 | } |
dbegasse | 1:f7383e13e64f | 324 | |
dbegasse | 1:f7383e13e64f | 325 | read(); |
dbegasse | 2:4d9a4421fc08 | 326 | |
dbegasse | 2:4d9a4421fc08 | 327 | if (sent == true){ |
dbegasse | 2:4d9a4421fc08 | 328 | |
dbegasse | 2:4d9a4421fc08 | 329 | read_row++; |
dbegasse | 2:4d9a4421fc08 | 330 | received_count = 0; |
dbegasse | 2:4d9a4421fc08 | 331 | |
dbegasse | 2:4d9a4421fc08 | 332 | } |
dbegasse | 1:f7383e13e64f | 333 | |
dbegasse | 1:f7383e13e64f | 334 | } |
dbegasse | 1:f7383e13e64f | 335 | } |