First quick attempt at a demo for the stampdock software of http://stampdock.com/ it demonstrates how to use the stampdock software from an mbed

Dependencies:   mbed

Committer:
apspijkerman
Date:
Tue Nov 02 15:29:20 2010 +0000
Revision:
0:f032bf4440c4
first version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apspijkerman 0:f032bf4440c4 1
apspijkerman 0:f032bf4440c4 2
apspijkerman 0:f032bf4440c4 3 // mbed demo program (needs stampdock software)
apspijkerman 0:f032bf4440c4 4 // by apspijkerman ap@apsdev.com
apspijkerman 0:f032bf4440c4 5
apspijkerman 0:f032bf4440c4 6
apspijkerman 0:f032bf4440c4 7 #include "mbed.h"
apspijkerman 0:f032bf4440c4 8
apspijkerman 0:f032bf4440c4 9 //Serial pc(USBTX, USBRX); // tx, rx
apspijkerman 0:f032bf4440c4 10 Serial serial(USBTX, USBRX); // tx, rx default 9600 8N1
apspijkerman 0:f032bf4440c4 11
apspijkerman 0:f032bf4440c4 12 AnalogIn xa(p15);
apspijkerman 0:f032bf4440c4 13 AnalogIn ya(p16);
apspijkerman 0:f032bf4440c4 14
apspijkerman 0:f032bf4440c4 15 DigitalOut myled1(LED1);
apspijkerman 0:f032bf4440c4 16 DigitalOut myled2(LED2);
apspijkerman 0:f032bf4440c4 17 DigitalOut myled3(LED3);
apspijkerman 0:f032bf4440c4 18 DigitalOut myled4(LED4);
apspijkerman 0:f032bf4440c4 19
apspijkerman 0:f032bf4440c4 20
apspijkerman 0:f032bf4440c4 21 void SetLed(int led, int mode)
apspijkerman 0:f032bf4440c4 22 {
apspijkerman 0:f032bf4440c4 23 if (led == 0) myled1 = mode;
apspijkerman 0:f032bf4440c4 24 if (led == 1) myled2 = mode;
apspijkerman 0:f032bf4440c4 25 if (led == 2) myled3 = mode;
apspijkerman 0:f032bf4440c4 26 if (led == 3) myled4 = mode;
apspijkerman 0:f032bf4440c4 27 }
apspijkerman 0:f032bf4440c4 28
apspijkerman 0:f032bf4440c4 29 void Blink(int led)
apspijkerman 0:f032bf4440c4 30 {
apspijkerman 0:f032bf4440c4 31 if (led == 0) myled1 = 1;
apspijkerman 0:f032bf4440c4 32 if (led == 1) myled2 = 1;
apspijkerman 0:f032bf4440c4 33 if (led == 2) myled3 = 1;
apspijkerman 0:f032bf4440c4 34 if (led == 3) myled4 = 1;
apspijkerman 0:f032bf4440c4 35 wait(0.1);
apspijkerman 0:f032bf4440c4 36 if (led == 0) myled1 = 0;
apspijkerman 0:f032bf4440c4 37 if (led == 1) myled2 = 0;
apspijkerman 0:f032bf4440c4 38 if (led == 2) myled3 = 0;
apspijkerman 0:f032bf4440c4 39 if (led == 3) myled4 = 0;
apspijkerman 0:f032bf4440c4 40 }
apspijkerman 0:f032bf4440c4 41
apspijkerman 0:f032bf4440c4 42 void SetLeds(void)
apspijkerman 0:f032bf4440c4 43 {
apspijkerman 0:f032bf4440c4 44 int t;
apspijkerman 0:f032bf4440c4 45
apspijkerman 0:f032bf4440c4 46 // flash all leds
apspijkerman 0:f032bf4440c4 47 /*
apspijkerman 0:f032bf4440c4 48 for (t = 0; t < 4; t++){
apspijkerman 0:f032bf4440c4 49 SetLed(t, 1);
apspijkerman 0:f032bf4440c4 50 }
apspijkerman 0:f032bf4440c4 51 wait(1);
apspijkerman 0:f032bf4440c4 52 for (t = 0; t < 4; t++){
apspijkerman 0:f032bf4440c4 53 SetLed(t, 0);
apspijkerman 0:f032bf4440c4 54 }
apspijkerman 0:f032bf4440c4 55 */
apspijkerman 0:f032bf4440c4 56 // kitt led test
apspijkerman 0:f032bf4440c4 57 for (t = 0; t < 4; t++){
apspijkerman 0:f032bf4440c4 58 SetLed(t, 1);
apspijkerman 0:f032bf4440c4 59 wait(0.2);
apspijkerman 0:f032bf4440c4 60 SetLed(t, 0);
apspijkerman 0:f032bf4440c4 61 }
apspijkerman 0:f032bf4440c4 62 }
apspijkerman 0:f032bf4440c4 63
apspijkerman 0:f032bf4440c4 64 void ToggleLed(int led)
apspijkerman 0:f032bf4440c4 65 {
apspijkerman 0:f032bf4440c4 66 if (led == 0) myled1 = !myled1;
apspijkerman 0:f032bf4440c4 67 if (led == 1) myled2 = !myled2;
apspijkerman 0:f032bf4440c4 68 if (led == 2) myled3 = !myled3;
apspijkerman 0:f032bf4440c4 69 if (led == 3) myled4 = !myled4;
apspijkerman 0:f032bf4440c4 70 wait(0.25);
apspijkerman 0:f032bf4440c4 71 }
apspijkerman 0:f032bf4440c4 72
apspijkerman 0:f032bf4440c4 73 //public class demo {
apspijkerman 0:f032bf4440c4 74
apspijkerman 0:f032bf4440c4 75 // seems we need to write commands in one go, so have a buffer
apspijkerman 0:f032bf4440c4 76 //static StringBuffer buf = new StringBuffer(128);
apspijkerman 0:f032bf4440c4 77
apspijkerman 0:f032bf4440c4 78 // check if the system has events for us
apspijkerman 0:f032bf4440c4 79 // if value greater then zero then thats the ID number of
apspijkerman 0:f032bf4440c4 80 // the gui element or the event number
apspijkerman 0:f032bf4440c4 81
apspijkerman 0:f032bf4440c4 82
apspijkerman 0:f032bf4440c4 83 void InitStampdock(void)
apspijkerman 0:f032bf4440c4 84 {
apspijkerman 0:f032bf4440c4 85 // serial.begin( 9600 );
apspijkerman 0:f032bf4440c4 86 // serial.baud(19200);
apspijkerman 0:f032bf4440c4 87 // serial.format(8,None,1);
apspijkerman 0:f032bf4440c4 88 SetLeds();
apspijkerman 0:f032bf4440c4 89
apspijkerman 0:f032bf4440c4 90 }
apspijkerman 0:f032bf4440c4 91
apspijkerman 0:f032bf4440c4 92
apspijkerman 0:f032bf4440c4 93 static int GetEvent()
apspijkerman 0:f032bf4440c4 94 {
apspijkerman 0:f032bf4440c4 95 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:f032bf4440c4 96 char v;
apspijkerman 0:f032bf4440c4 97 // DEBUG "?Q;" 'query for events .. also sync with PC
apspijkerman 0:f032bf4440c4 98 // SERIN 16, Baud, [x] '16468
apspijkerman 0:f032bf4440c4 99 // PAUSE 1 ' millisecs .. let serial bus settle
apspijkerman 0:f032bf4440c4 100
apspijkerman 0:f032bf4440c4 101 //serial.printf("\n"); // test .. purge buffer ?
apspijkerman 0:f032bf4440c4 102 serial.printf("?Q;"); // query for event
apspijkerman 0:f032bf4440c4 103 //wait(0.11); //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 104 do{
apspijkerman 0:f032bf4440c4 105 if (serial.readable()){
apspijkerman 0:f032bf4440c4 106 //v = Serial.read();
apspijkerman 0:f032bf4440c4 107 v = serial.getc();
apspijkerman 0:f032bf4440c4 108
apspijkerman 0:f032bf4440c4 109 e = v;
apspijkerman 0:f032bf4440c4 110 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:f032bf4440c4 111
apspijkerman 0:f032bf4440c4 112 //e = (255-v) + 1; // 2's complement
apspijkerman 0:f032bf4440c4 113
apspijkerman 0:f032bf4440c4 114 //serial.printf("EVENT:");
apspijkerman 0:f032bf4440c4 115 //serial.printf(e);
apspijkerman 0:f032bf4440c4 116 //serial.printf("<-");
apspijkerman 0:f032bf4440c4 117 ready = 1;
apspijkerman 0:f032bf4440c4 118 }else{
apspijkerman 0:f032bf4440c4 119 //serial.printf("no event");
apspijkerman 0:f032bf4440c4 120 wait(0.0001);
apspijkerman 0:f032bf4440c4 121 cnt++;
apspijkerman 0:f032bf4440c4 122 if (cnt == 1000) ready = 1;
apspijkerman 0:f032bf4440c4 123 Blink(0);
apspijkerman 0:f032bf4440c4 124 }
apspijkerman 0:f032bf4440c4 125 }while(!ready);
apspijkerman 0:f032bf4440c4 126 //CPU.delay(10);
apspijkerman 0:f032bf4440c4 127
apspijkerman 0:f032bf4440c4 128 // .. flush out of sync events ..
apspijkerman 0:f032bf4440c4 129 //while (serial.readable()){
apspijkerman 0:f032bf4440c4 130 if (serial.readable()){
apspijkerman 0:f032bf4440c4 131 // Serial.read();
apspijkerman 0:f032bf4440c4 132 serial.getc();
apspijkerman 0:f032bf4440c4 133 Blink(1);
apspijkerman 0:f032bf4440c4 134 }
apspijkerman 0:f032bf4440c4 135
apspijkerman 0:f032bf4440c4 136 if (serial.readable()){
apspijkerman 0:f032bf4440c4 137 // Serial.read();
apspijkerman 0:f032bf4440c4 138 serial.getc();
apspijkerman 0:f032bf4440c4 139 Blink(2);
apspijkerman 0:f032bf4440c4 140 }
apspijkerman 0:f032bf4440c4 141
apspijkerman 0:f032bf4440c4 142 return e;
apspijkerman 0:f032bf4440c4 143 }
apspijkerman 0:f032bf4440c4 144
apspijkerman 0:f032bf4440c4 145 // request the state of GUI element i
apspijkerman 0:f032bf4440c4 146
apspijkerman 0:f032bf4440c4 147 static int GetValue(int i)
apspijkerman 0:f032bf4440c4 148 {
apspijkerman 0:f032bf4440c4 149 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:f032bf4440c4 150 char v;
apspijkerman 0:f032bf4440c4 151 //StringBuffer buf=new StringBuffer(12);
apspijkerman 0:f032bf4440c4 152
apspijkerman 0:f032bf4440c4 153 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:f032bf4440c4 154 // SERIN 16, Baud, [s] '16468
apspijkerman 0:f032bf4440c4 155 // PAUSE 1 ' millisecs
apspijkerman 0:f032bf4440c4 156
apspijkerman 0:f032bf4440c4 157 //serial.printf("?i"); // query for event
apspijkerman 0:f032bf4440c4 158 //serial.printf(i);
apspijkerman 0:f032bf4440c4 159 //serial.printf(";");
apspijkerman 0:f032bf4440c4 160
apspijkerman 0:f032bf4440c4 161 //buf.clear();
apspijkerman 0:f032bf4440c4 162 //buf.append("?i");
apspijkerman 0:f032bf4440c4 163 //buf.append( i );
apspijkerman 0:f032bf4440c4 164 //buf.append(";");
apspijkerman 0:f032bf4440c4 165 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 166
apspijkerman 0:f032bf4440c4 167 serial.printf("?i%d;", i );
apspijkerman 0:f032bf4440c4 168
apspijkerman 0:f032bf4440c4 169 //wait(0.1); //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 170 do {
apspijkerman 0:f032bf4440c4 171 if (serial.readable()){
apspijkerman 0:f032bf4440c4 172 //v = Serial.read();
apspijkerman 0:f032bf4440c4 173 v = serial.getc();
apspijkerman 0:f032bf4440c4 174
apspijkerman 0:f032bf4440c4 175 e = v;
apspijkerman 0:f032bf4440c4 176 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:f032bf4440c4 177
apspijkerman 0:f032bf4440c4 178 //e = (255-v) + 1; // 2's complement
apspijkerman 0:f032bf4440c4 179 ready = 1;
apspijkerman 0:f032bf4440c4 180 }else{
apspijkerman 0:f032bf4440c4 181 wait(0.0001);
apspijkerman 0:f032bf4440c4 182 cnt++;
apspijkerman 0:f032bf4440c4 183 if (cnt == 1000) ready = 1;
apspijkerman 0:f032bf4440c4 184 }
apspijkerman 0:f032bf4440c4 185 //CPU.delay(10);
apspijkerman 0:f032bf4440c4 186 }while(!ready);
apspijkerman 0:f032bf4440c4 187 return e;
apspijkerman 0:f032bf4440c4 188 }
apspijkerman 0:f032bf4440c4 189
apspijkerman 0:f032bf4440c4 190 // set the state (v) of gui element i
apspijkerman 0:f032bf4440c4 191
apspijkerman 0:f032bf4440c4 192 static void SetValue(int i, int v)
apspijkerman 0:f032bf4440c4 193 {
apspijkerman 0:f032bf4440c4 194 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:f032bf4440c4 195
apspijkerman 0:f032bf4440c4 196 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:f032bf4440c4 197 // SERIN 16, Baud, [s] '16468
apspijkerman 0:f032bf4440c4 198 // PAUSE 1 ' millisecs
apspijkerman 0:f032bf4440c4 199
apspijkerman 0:f032bf4440c4 200 //serial.printf("!i"); // set value
apspijkerman 0:f032bf4440c4 201 //serial.printf(i);
apspijkerman 0:f032bf4440c4 202 //serial.printf(",")
apspijkerman 0:f032bf4440c4 203 //serial.printf(v);
apspijkerman 0:f032bf4440c4 204 //serial.printf(";");
apspijkerman 0:f032bf4440c4 205
apspijkerman 0:f032bf4440c4 206 //buf.clear(); // slow ascii method to allow values > 255
apspijkerman 0:f032bf4440c4 207 if (i <= 255){
apspijkerman 0:f032bf4440c4 208 //buf.append("!ib"); // fast binary way
apspijkerman 0:f032bf4440c4 209 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:f032bf4440c4 210 //buf.append((char) i ); // write id
apspijkerman 0:f032bf4440c4 211 //buf.append((char) v ); // always smaller als 256
apspijkerman 0:f032bf4440c4 212
apspijkerman 0:f032bf4440c4 213 serial.printf("!ib%c%c%c;", 2 , i , v );
apspijkerman 0:f032bf4440c4 214 }else{
apspijkerman 0:f032bf4440c4 215 //buf.append("!i"); // slow ascii way
apspijkerman 0:f032bf4440c4 216 //buf.append( i ); // in case ID greater as 255
apspijkerman 0:f032bf4440c4 217 //buf.append(",");
apspijkerman 0:f032bf4440c4 218 //buf.append( v );
apspijkerman 0:f032bf4440c4 219
apspijkerman 0:f032bf4440c4 220 serial.printf("!i%d,%d;", i, v);
apspijkerman 0:f032bf4440c4 221 }
apspijkerman 0:f032bf4440c4 222 //buf.append(";");
apspijkerman 0:f032bf4440c4 223 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 224
apspijkerman 0:f032bf4440c4 225 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 226 }
apspijkerman 0:f032bf4440c4 227
apspijkerman 0:f032bf4440c4 228
apspijkerman 0:f032bf4440c4 229 static char ReadByte()
apspijkerman 0:f032bf4440c4 230 {
apspijkerman 0:f032bf4440c4 231 char v = 0, ready = 0, cnt = 0;
apspijkerman 0:f032bf4440c4 232
apspijkerman 0:f032bf4440c4 233 //wait(0.1);
apspijkerman 0:f032bf4440c4 234 do {
apspijkerman 0:f032bf4440c4 235 if (serial.readable()){
apspijkerman 0:f032bf4440c4 236 //v = Serial.read();
apspijkerman 0:f032bf4440c4 237 v = serial.getc();
apspijkerman 0:f032bf4440c4 238
apspijkerman 0:f032bf4440c4 239 //e = v;
apspijkerman 0:f032bf4440c4 240 //if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:f032bf4440c4 241 ready = 1;
apspijkerman 0:f032bf4440c4 242 }else{
apspijkerman 0:f032bf4440c4 243 wait(0.0001);
apspijkerman 0:f032bf4440c4 244 cnt++;
apspijkerman 0:f032bf4440c4 245 if (cnt == 1000) ready = 1;
apspijkerman 0:f032bf4440c4 246 }
apspijkerman 0:f032bf4440c4 247 }while(!ready);
apspijkerman 0:f032bf4440c4 248 return v;
apspijkerman 0:f032bf4440c4 249 }
apspijkerman 0:f032bf4440c4 250
apspijkerman 0:f032bf4440c4 251
apspijkerman 0:f032bf4440c4 252 static void SetColor(int r, int g, int b)
apspijkerman 0:f032bf4440c4 253 {
apspijkerman 0:f032bf4440c4 254 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:f032bf4440c4 255
apspijkerman 0:f032bf4440c4 256 if (r == 0 && g == 0 && b == 0){
apspijkerman 0:f032bf4440c4 257 serial.printf("!s;"); // black
apspijkerman 0:f032bf4440c4 258 }else{
apspijkerman 0:f032bf4440c4 259 //buf.clear();
apspijkerman 0:f032bf4440c4 260 //buf.append("!sb"); // fast binary method .. so values <= 255
apspijkerman 0:f032bf4440c4 261 //buf.append((char) 3 ); // write 3 bytes
apspijkerman 0:f032bf4440c4 262 //buf.append((char) r );
apspijkerman 0:f032bf4440c4 263 //buf.append((char) g );
apspijkerman 0:f032bf4440c4 264 //buf.append((char) b );
apspijkerman 0:f032bf4440c4 265 //buf.append(";" );
apspijkerman 0:f032bf4440c4 266 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 267
apspijkerman 0:f032bf4440c4 268 serial.printf("!sb%c%c%c%c;", 3, r, g, b );
apspijkerman 0:f032bf4440c4 269 }
apspijkerman 0:f032bf4440c4 270 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 271 }
apspijkerman 0:f032bf4440c4 272
apspijkerman 0:f032bf4440c4 273
apspijkerman 0:f032bf4440c4 274 static void SetGrey(int g)
apspijkerman 0:f032bf4440c4 275 {
apspijkerman 0:f032bf4440c4 276 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:f032bf4440c4 277
apspijkerman 0:f032bf4440c4 278 // DEBUG "!fb", 1, dat, ";"
apspijkerman 0:f032bf4440c4 279
apspijkerman 0:f032bf4440c4 280 if (g == 0){
apspijkerman 0:f032bf4440c4 281 //System.out.print("!f;"); // black
apspijkerman 0:f032bf4440c4 282 serial.printf("!f;"); // black
apspijkerman 0:f032bf4440c4 283 }else{
apspijkerman 0:f032bf4440c4 284 //buf.clear();
apspijkerman 0:f032bf4440c4 285 //buf.append("!fb"); // fast binary method .. so values <= 255
apspijkerman 0:f032bf4440c4 286 //buf.append((char) 1 ); // write 3 bytes
apspijkerman 0:f032bf4440c4 287 //buf.append((char) g );
apspijkerman 0:f032bf4440c4 288 //buf.append(";" );
apspijkerman 0:f032bf4440c4 289 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 290
apspijkerman 0:f032bf4440c4 291
apspijkerman 0:f032bf4440c4 292 serial.printf("!sf%c%c;", 1, g );
apspijkerman 0:f032bf4440c4 293 }
apspijkerman 0:f032bf4440c4 294 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 295 }
apspijkerman 0:f032bf4440c4 296
apspijkerman 0:f032bf4440c4 297
apspijkerman 0:f032bf4440c4 298
apspijkerman 0:f032bf4440c4 299 static void SetLED(int i, int r, int g, int b)
apspijkerman 0:f032bf4440c4 300 {
apspijkerman 0:f032bf4440c4 301 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:f032bf4440c4 302
apspijkerman 0:f032bf4440c4 303 //buf.clear();
apspijkerman 0:f032bf4440c4 304 //buf.append("!jb"); // fast binary method .. so values <= 255
apspijkerman 0:f032bf4440c4 305 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:f032bf4440c4 306 //buf.append((char) i );
apspijkerman 0:f032bf4440c4 307 //buf.append((char) r );
apspijkerman 0:f032bf4440c4 308 //buf.append((char) g );
apspijkerman 0:f032bf4440c4 309 //buf.append((char) b );
apspijkerman 0:f032bf4440c4 310 //buf.append(";" );
apspijkerman 0:f032bf4440c4 311 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 312
apspijkerman 0:f032bf4440c4 313 serial.printf("!jb%c%c%c%c%c;", 4, i, r, g, b );
apspijkerman 0:f032bf4440c4 314
apspijkerman 0:f032bf4440c4 315 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 316 }
apspijkerman 0:f032bf4440c4 317
apspijkerman 0:f032bf4440c4 318 static void DrawLine(int x1, int y1, int x2, int y2)
apspijkerman 0:f032bf4440c4 319 {
apspijkerman 0:f032bf4440c4 320 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:f032bf4440c4 321
apspijkerman 0:f032bf4440c4 322 //if (x1 < 0) x1 = 0;
apspijkerman 0:f032bf4440c4 323 //if (y1 < 0) y1 = 0;
apspijkerman 0:f032bf4440c4 324 //if (x2 < 0) x2 = 0;
apspijkerman 0:f032bf4440c4 325 //if (y2 < 0) y2 = 0;
apspijkerman 0:f032bf4440c4 326
apspijkerman 0:f032bf4440c4 327 //buf.clear();
apspijkerman 0:f032bf4440c4 328 if (x1 >= 0 && x1 <= 255 && y1 >= 0 && y1 <= 255 && x2 >= 0 && x2 <= 255 && y2
apspijkerman 0:f032bf4440c4 329
apspijkerman 0:f032bf4440c4 330 >= 0 && x2 <= 255){
apspijkerman 0:f032bf4440c4 331 //buf.append("!lb"); // fast binary method
apspijkerman 0:f032bf4440c4 332 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:f032bf4440c4 333 //buf.append((char) x1 );
apspijkerman 0:f032bf4440c4 334 //buf.append((char) y1 );
apspijkerman 0:f032bf4440c4 335 //buf.append((char) x2 );
apspijkerman 0:f032bf4440c4 336 //buf.append((char) y2 );
apspijkerman 0:f032bf4440c4 337
apspijkerman 0:f032bf4440c4 338 serial.printf("!lb%c%c%c%c%c;", 4, x1, y1, x2, y2 );
apspijkerman 0:f032bf4440c4 339 }else{
apspijkerman 0:f032bf4440c4 340 //buf.append("!l"); // slow method .. so values > 255
apspijkerman 0:f032bf4440c4 341 //buf.append( x1 );
apspijkerman 0:f032bf4440c4 342 //buf.append("," );
apspijkerman 0:f032bf4440c4 343 //buf.append( y1 );
apspijkerman 0:f032bf4440c4 344 //buf.append("," );
apspijkerman 0:f032bf4440c4 345 //buf.append( x2 );
apspijkerman 0:f032bf4440c4 346 //buf.append("," );
apspijkerman 0:f032bf4440c4 347 //buf.append( y2 );
apspijkerman 0:f032bf4440c4 348
apspijkerman 0:f032bf4440c4 349 serial.printf("!l%d,%d,%d,%d;", x1, y1, x2, y2);
apspijkerman 0:f032bf4440c4 350 }
apspijkerman 0:f032bf4440c4 351 //buf.append(";" );
apspijkerman 0:f032bf4440c4 352 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 353
apspijkerman 0:f032bf4440c4 354 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 355 }
apspijkerman 0:f032bf4440c4 356
apspijkerman 0:f032bf4440c4 357 static void Plot(int x, int y)
apspijkerman 0:f032bf4440c4 358 {
apspijkerman 0:f032bf4440c4 359 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:f032bf4440c4 360
apspijkerman 0:f032bf4440c4 361 //if (x < 0) x = 0;
apspijkerman 0:f032bf4440c4 362 //if (y < 0) y = 0;
apspijkerman 0:f032bf4440c4 363
apspijkerman 0:f032bf4440c4 364 //buf.clear();
apspijkerman 0:f032bf4440c4 365 if (x >= 0 && x <= 255 && y >= 0 && y <= 255){
apspijkerman 0:f032bf4440c4 366 //buf.append("!pb"); // fast method .. so values <= 255
apspijkerman 0:f032bf4440c4 367 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:f032bf4440c4 368 //buf.append((char) x );
apspijkerman 0:f032bf4440c4 369 //buf.append((char) y );
apspijkerman 0:f032bf4440c4 370
apspijkerman 0:f032bf4440c4 371 serial.printf("!pb%c%c%c;", 2, x, y);
apspijkerman 0:f032bf4440c4 372 }else{
apspijkerman 0:f032bf4440c4 373 //buf.append("!p"); // slow method .. so values > 255
apspijkerman 0:f032bf4440c4 374 //buf.append( x );
apspijkerman 0:f032bf4440c4 375 //buf.append("," );
apspijkerman 0:f032bf4440c4 376 //buf.append( y );
apspijkerman 0:f032bf4440c4 377
apspijkerman 0:f032bf4440c4 378 serial.printf("!p%d,%d;", x, y);
apspijkerman 0:f032bf4440c4 379 }
apspijkerman 0:f032bf4440c4 380 //buf.append(";" );
apspijkerman 0:f032bf4440c4 381 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 382
apspijkerman 0:f032bf4440c4 383 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 384 }
apspijkerman 0:f032bf4440c4 385
apspijkerman 0:f032bf4440c4 386
apspijkerman 0:f032bf4440c4 387 static void DrawGrid(int a, int b, int c, int d, int e, int f)
apspijkerman 0:f032bf4440c4 388 {
apspijkerman 0:f032bf4440c4 389 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:f032bf4440c4 390
apspijkerman 0:f032bf4440c4 391 //buf.clear();
apspijkerman 0:f032bf4440c4 392 //buf.append("!ab"); // fast binary method
apspijkerman 0:f032bf4440c4 393 //buf.append((char) 6 ); // write 6 bytes
apspijkerman 0:f032bf4440c4 394 //buf.append((char) a ); // xspace
apspijkerman 0:f032bf4440c4 395 //buf.append((char) b ); // yspace
apspijkerman 0:f032bf4440c4 396 //buf.append((char) c ); // xlines
apspijkerman 0:f032bf4440c4 397 //buf.append((char) d ); // ylines
apspijkerman 0:f032bf4440c4 398 //buf.append((char) e ); // xoffset
apspijkerman 0:f032bf4440c4 399 //buf.append((char) f ); // yoffset
apspijkerman 0:f032bf4440c4 400 //buf.append(";" );
apspijkerman 0:f032bf4440c4 401 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 402
apspijkerman 0:f032bf4440c4 403 serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:f032bf4440c4 404
apspijkerman 0:f032bf4440c4 405 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 406 }
apspijkerman 0:f032bf4440c4 407
apspijkerman 0:f032bf4440c4 408 static void ClearScreen()
apspijkerman 0:f032bf4440c4 409 {
apspijkerman 0:f032bf4440c4 410 serial.printf("!c;");
apspijkerman 0:f032bf4440c4 411 }
apspijkerman 0:f032bf4440c4 412
apspijkerman 0:f032bf4440c4 413 // shortcut: Cmd("!c;"); or Cmd("?O;");
apspijkerman 0:f032bf4440c4 414
apspijkerman 0:f032bf4440c4 415 static void Cmd(char *p)
apspijkerman 0:f032bf4440c4 416 {
apspijkerman 0:f032bf4440c4 417 serial.printf(p);
apspijkerman 0:f032bf4440c4 418 }
apspijkerman 0:f032bf4440c4 419
apspijkerman 0:f032bf4440c4 420 // for "!nSpeech;" or "!Llog file;"
apspijkerman 0:f032bf4440c4 421
apspijkerman 0:f032bf4440c4 422 static void CmdStr(char cmd, char *p )
apspijkerman 0:f032bf4440c4 423 {
apspijkerman 0:f032bf4440c4 424 //buf.clear();
apspijkerman 0:f032bf4440c4 425 //buf.append("!");
apspijkerman 0:f032bf4440c4 426 //buf.append( cmd );
apspijkerman 0:f032bf4440c4 427 //buf.append( p );
apspijkerman 0:f032bf4440c4 428 //buf.append(";" );
apspijkerman 0:f032bf4440c4 429 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 430
apspijkerman 0:f032bf4440c4 431 serial.printf("!%c%s;", cmd, p);
apspijkerman 0:f032bf4440c4 432 }
apspijkerman 0:f032bf4440c4 433
apspijkerman 0:f032bf4440c4 434 // cmd with no argument so Cmd0('s'); = "!s;"
apspijkerman 0:f032bf4440c4 435
apspijkerman 0:f032bf4440c4 436 static void Cmd0(char cmd )
apspijkerman 0:f032bf4440c4 437 {
apspijkerman 0:f032bf4440c4 438 //buf.clear();
apspijkerman 0:f032bf4440c4 439 //buf.append("!");
apspijkerman 0:f032bf4440c4 440 //buf.append( cmd );
apspijkerman 0:f032bf4440c4 441 //buf.append(";" );
apspijkerman 0:f032bf4440c4 442 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 443
apspijkerman 0:f032bf4440c4 444 serial.printf("!%c;", cmd);
apspijkerman 0:f032bf4440c4 445 }
apspijkerman 0:f032bf4440c4 446
apspijkerman 0:f032bf4440c4 447 // request with no arguments
apspijkerman 0:f032bf4440c4 448 // Req0( 'm' ); = "?m;"
apspijkerman 0:f032bf4440c4 449
apspijkerman 0:f032bf4440c4 450 static void Req0(char req )
apspijkerman 0:f032bf4440c4 451 {
apspijkerman 0:f032bf4440c4 452 //buf.clear();
apspijkerman 0:f032bf4440c4 453 //buf.append("?");
apspijkerman 0:f032bf4440c4 454 //buf.append( req );
apspijkerman 0:f032bf4440c4 455 //buf.append(";" );
apspijkerman 0:f032bf4440c4 456 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 457
apspijkerman 0:f032bf4440c4 458 serial.printf("?%c;", req );
apspijkerman 0:f032bf4440c4 459 }
apspijkerman 0:f032bf4440c4 460
apspijkerman 0:f032bf4440c4 461 // cmd with 1 arg Cmd1('a' , 1 ); = "!a1;"
apspijkerman 0:f032bf4440c4 462
apspijkerman 0:f032bf4440c4 463 static void Cmd1(char cmd, int arg1 )
apspijkerman 0:f032bf4440c4 464 {
apspijkerman 0:f032bf4440c4 465 //buf.clear();
apspijkerman 0:f032bf4440c4 466 //buf.append("!");
apspijkerman 0:f032bf4440c4 467 //buf.append( cmd );
apspijkerman 0:f032bf4440c4 468 if (arg1 < 256){
apspijkerman 0:f032bf4440c4 469 //buf.append( 'b' ); // binary mode
apspijkerman 0:f032bf4440c4 470 //buf.append((char) 1 ); // 1 argument
apspijkerman 0:f032bf4440c4 471 //buf.append((char) arg1 );
apspijkerman 0:f032bf4440c4 472
apspijkerman 0:f032bf4440c4 473 serial.printf("!%cb%c%c;", cmd, 1, arg1 );
apspijkerman 0:f032bf4440c4 474 }else{
apspijkerman 0:f032bf4440c4 475 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:f032bf4440c4 476
apspijkerman 0:f032bf4440c4 477 serial.printf("!%c%d;", cmd, arg1 );
apspijkerman 0:f032bf4440c4 478 }
apspijkerman 0:f032bf4440c4 479 //buf.append(";" );
apspijkerman 0:f032bf4440c4 480 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 481 }
apspijkerman 0:f032bf4440c4 482
apspijkerman 0:f032bf4440c4 483 // cmd with 2 args Cmd2('G', 20, 1); = "!G20,1;"
apspijkerman 0:f032bf4440c4 484 // plot = Cmd2( 'p', x, y );
apspijkerman 0:f032bf4440c4 485
apspijkerman 0:f032bf4440c4 486 static void Cmd2(char cmd, int arg1, int arg2 )
apspijkerman 0:f032bf4440c4 487 {
apspijkerman 0:f032bf4440c4 488 //buf.clear();
apspijkerman 0:f032bf4440c4 489 //buf.append("!" ); // !
apspijkerman 0:f032bf4440c4 490 //buf.append( cmd );
apspijkerman 0:f032bf4440c4 491 if (arg1 < 255 && arg2 < 255){
apspijkerman 0:f032bf4440c4 492 //buf.append( 'b' ); // binary mode
apspijkerman 0:f032bf4440c4 493 //buf.append((char) 2 ); // 2 arguments
apspijkerman 0:f032bf4440c4 494 //buf.append((char) arg1 );
apspijkerman 0:f032bf4440c4 495 //buf.append((char) arg2 );
apspijkerman 0:f032bf4440c4 496
apspijkerman 0:f032bf4440c4 497 serial.printf("!%cb%c%c%c;", cmd, 2, arg1, arg2 );
apspijkerman 0:f032bf4440c4 498 }else{
apspijkerman 0:f032bf4440c4 499 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:f032bf4440c4 500 //buf.append("," );
apspijkerman 0:f032bf4440c4 501 //buf.append( arg2 );
apspijkerman 0:f032bf4440c4 502
apspijkerman 0:f032bf4440c4 503 serial.printf("!%c%d,%d;", cmd, arg1, arg2 );
apspijkerman 0:f032bf4440c4 504 }
apspijkerman 0:f032bf4440c4 505 //buf.append(";" );
apspijkerman 0:f032bf4440c4 506 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 507 }
apspijkerman 0:f032bf4440c4 508
apspijkerman 0:f032bf4440c4 509 // cmd with 3 args
apspijkerman 0:f032bf4440c4 510 // setcolor = Cmd3( 's', r, g, b );
apspijkerman 0:f032bf4440c4 511
apspijkerman 0:f032bf4440c4 512 static void Cmd3(char cmd, int arg1, int arg2, int arg3 )
apspijkerman 0:f032bf4440c4 513 {
apspijkerman 0:f032bf4440c4 514 //buf.clear();
apspijkerman 0:f032bf4440c4 515 //buf.append("!" ); // !
apspijkerman 0:f032bf4440c4 516 //buf.append( cmd );
apspijkerman 0:f032bf4440c4 517 if (arg1 < 255 && arg2 < 255 && arg3 < 255){
apspijkerman 0:f032bf4440c4 518 //buf.append( 'b' ); // binary mode
apspijkerman 0:f032bf4440c4 519 //buf.append((char) 3 ); // 3 arguments
apspijkerman 0:f032bf4440c4 520 //buf.append((char) arg1 );
apspijkerman 0:f032bf4440c4 521 //buf.append((char) arg2 );
apspijkerman 0:f032bf4440c4 522 //buf.append((char) arg3 );
apspijkerman 0:f032bf4440c4 523
apspijkerman 0:f032bf4440c4 524 serial.printf("!%cb%c%c%c%c;", cmd, 3, arg1, arg2, arg3 );
apspijkerman 0:f032bf4440c4 525 }else{
apspijkerman 0:f032bf4440c4 526 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:f032bf4440c4 527 //buf.append("," );
apspijkerman 0:f032bf4440c4 528 //buf.append( arg2 );
apspijkerman 0:f032bf4440c4 529 //buf.append("," );
apspijkerman 0:f032bf4440c4 530 //buf.append( arg3 );
apspijkerman 0:f032bf4440c4 531
apspijkerman 0:f032bf4440c4 532 serial.printf("!%c%d,%d,%d;", cmd, arg1, arg2, arg3 );
apspijkerman 0:f032bf4440c4 533 }
apspijkerman 0:f032bf4440c4 534 //buf.append(";" );
apspijkerman 0:f032bf4440c4 535 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 536 }
apspijkerman 0:f032bf4440c4 537
apspijkerman 0:f032bf4440c4 538 // cmd with 4 args
apspijkerman 0:f032bf4440c4 539 // line = Cmd4( 'l', x1, y1, x2, y2);
apspijkerman 0:f032bf4440c4 540
apspijkerman 0:f032bf4440c4 541 static void Cmd4(char cmd, int arg1, int arg2, int arg3, int arg4 )
apspijkerman 0:f032bf4440c4 542 {
apspijkerman 0:f032bf4440c4 543 //buf.clear();
apspijkerman 0:f032bf4440c4 544 //buf.append("!" ); // !
apspijkerman 0:f032bf4440c4 545 //buf.append( cmd );
apspijkerman 0:f032bf4440c4 546 if (arg1 < 255 && arg2 < 255 && arg3 < 255 && arg4 < 255){
apspijkerman 0:f032bf4440c4 547 //buf.append( 'b' ); // binary mode
apspijkerman 0:f032bf4440c4 548 //buf.append((char) 4 ); // 4 arguments
apspijkerman 0:f032bf4440c4 549 //buf.append((char) arg1 );
apspijkerman 0:f032bf4440c4 550 //buf.append((char) arg2 );
apspijkerman 0:f032bf4440c4 551 //buf.append((char) arg3 );
apspijkerman 0:f032bf4440c4 552 //buf.append((char) arg4 );
apspijkerman 0:f032bf4440c4 553
apspijkerman 0:f032bf4440c4 554 serial.printf("!%cb%c%c%c%c%c;", cmd, 4, arg1, arg2, arg3, arg4 );
apspijkerman 0:f032bf4440c4 555 }else{
apspijkerman 0:f032bf4440c4 556 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:f032bf4440c4 557 //buf.append("," );
apspijkerman 0:f032bf4440c4 558 //buf.append( arg2 );
apspijkerman 0:f032bf4440c4 559 //buf.append("," );
apspijkerman 0:f032bf4440c4 560 //buf.append( arg3 );
apspijkerman 0:f032bf4440c4 561 //buf.append("," );
apspijkerman 0:f032bf4440c4 562 //buf.append( arg4 );
apspijkerman 0:f032bf4440c4 563
apspijkerman 0:f032bf4440c4 564 serial.printf("!%c%d,%d,%d,%d;", cmd, arg1, arg2, arg3, arg4 );
apspijkerman 0:f032bf4440c4 565 }
apspijkerman 0:f032bf4440c4 566 //buf.append(";" );
apspijkerman 0:f032bf4440c4 567 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 568 }
apspijkerman 0:f032bf4440c4 569
apspijkerman 0:f032bf4440c4 570 // play video, mp3 or picture
apspijkerman 0:f032bf4440c4 571
apspijkerman 0:f032bf4440c4 572 static void Media(char *p)
apspijkerman 0:f032bf4440c4 573 {
apspijkerman 0:f032bf4440c4 574 //buf.clear();
apspijkerman 0:f032bf4440c4 575 //buf.append("!V");
apspijkerman 0:f032bf4440c4 576 //buf.append( p );
apspijkerman 0:f032bf4440c4 577 //buf.append(";" );
apspijkerman 0:f032bf4440c4 578 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 579
apspijkerman 0:f032bf4440c4 580 serial.printf("!V%s;", p);
apspijkerman 0:f032bf4440c4 581 }
apspijkerman 0:f032bf4440c4 582
apspijkerman 0:f032bf4440c4 583 static void Speech(char *p)
apspijkerman 0:f032bf4440c4 584 {
apspijkerman 0:f032bf4440c4 585 //buf.clear();
apspijkerman 0:f032bf4440c4 586 //buf.append("!n");
apspijkerman 0:f032bf4440c4 587 //buf.append( p );
apspijkerman 0:f032bf4440c4 588 //buf.append(";" );
apspijkerman 0:f032bf4440c4 589 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 590
apspijkerman 0:f032bf4440c4 591 serial.printf("!n%s;", p);
apspijkerman 0:f032bf4440c4 592 }
apspijkerman 0:f032bf4440c4 593
apspijkerman 0:f032bf4440c4 594 static void Log(char *p)
apspijkerman 0:f032bf4440c4 595 {
apspijkerman 0:f032bf4440c4 596 //buf.clear();
apspijkerman 0:f032bf4440c4 597 //buf.append("!L");
apspijkerman 0:f032bf4440c4 598 //buf.append( p );
apspijkerman 0:f032bf4440c4 599 //buf.append(";" );
apspijkerman 0:f032bf4440c4 600 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 601
apspijkerman 0:f032bf4440c4 602 serial.printf("!L%s;", p);
apspijkerman 0:f032bf4440c4 603 }
apspijkerman 0:f032bf4440c4 604
apspijkerman 0:f032bf4440c4 605 static void ScrollLeft()
apspijkerman 0:f032bf4440c4 606 {
apspijkerman 0:f032bf4440c4 607 serial.printf("!G20,1;");
apspijkerman 0:f032bf4440c4 608 }
apspijkerman 0:f032bf4440c4 609
apspijkerman 0:f032bf4440c4 610 /*
apspijkerman 0:f032bf4440c4 611 static void DrawGrid(int a, int b, int c, int d, int e, int f)
apspijkerman 0:f032bf4440c4 612 {
apspijkerman 0:f032bf4440c4 613 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:f032bf4440c4 614
apspijkerman 0:f032bf4440c4 615 //buf.clear();
apspijkerman 0:f032bf4440c4 616 //buf.append("!ab"); // fast binary method
apspijkerman 0:f032bf4440c4 617 //buf.append((char) 6 ); // write 6 bytes
apspijkerman 0:f032bf4440c4 618 //buf.append((char) a ); // xspace
apspijkerman 0:f032bf4440c4 619 //buf.append((char) b ); // yspace
apspijkerman 0:f032bf4440c4 620 //buf.append((char) c ); // xlines
apspijkerman 0:f032bf4440c4 621 //buf.append((char) d ); // ylines
apspijkerman 0:f032bf4440c4 622 //buf.append((char) e ); // xoffset
apspijkerman 0:f032bf4440c4 623 //buf.append((char) f ); // yoffset
apspijkerman 0:f032bf4440c4 624 //buf.append(";" );
apspijkerman 0:f032bf4440c4 625
apspijkerman 0:f032bf4440c4 626 //System.out.print(buf.toString());
apspijkerman 0:f032bf4440c4 627
apspijkerman 0:f032bf4440c4 628 serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:f032bf4440c4 629
apspijkerman 0:f032bf4440c4 630 //CPU.delay(1); // ??
apspijkerman 0:f032bf4440c4 631 }
apspijkerman 0:f032bf4440c4 632 */
apspijkerman 0:f032bf4440c4 633
apspijkerman 0:f032bf4440c4 634 /*
apspijkerman 0:f032bf4440c4 635 static void initpins() {
apspijkerman 0:f032bf4440c4 636 // OUTPUT dischargecap 'capacitor reset p 15
apspijkerman 0:f032bf4440c4 637 // LOW dischargecap 'disable p 15
apspijkerman 0:f032bf4440c4 638
apspijkerman 0:f032bf4440c4 639 // OUTPUT chargecap 'capacitor charge p 14
apspijkerman 0:f032bf4440c4 640 // HIGH chargecap 'disable p 14
apspijkerman 0:f032bf4440c4 641
apspijkerman 0:f032bf4440c4 642 // INPUT chanblow 'channel b p 12
apspijkerman 0:f032bf4440c4 643 // INPUT chanalow 'channel a p 13
apspijkerman 0:f032bf4440c4 644 // INPUT chanbhigh 'channel b high p 10
apspijkerman 0:f032bf4440c4 645 // INPUT chanahigh 'channel a high p 11
apspijkerman 0:f032bf4440c4 646
apspijkerman 0:f032bf4440c4 647 CPU.setInput (CPU.pins[10]); // chan b high opamp
apspijkerman 0:f032bf4440c4 648 CPU.setInput (CPU.pins[11]); // chan a high opamp
apspijkerman 0:f032bf4440c4 649 CPU.setInput (CPU.pins[12]); // chan b low opamp
apspijkerman 0:f032bf4440c4 650 CPU.setInput (CPU.pins[13]); // chan a low opamp
apspijkerman 0:f032bf4440c4 651
apspijkerman 0:f032bf4440c4 652 CPU.setOutput(CPU.pins[14]); // charge cap pin
apspijkerman 0:f032bf4440c4 653 CPU.setOutput(CPU.pins[15]); // discarge cap pin
apspijkerman 0:f032bf4440c4 654
apspijkerman 0:f032bf4440c4 655 CPU.writePin (CPU.pins[15] , false );
apspijkerman 0:f032bf4440c4 656 CPU.writePin (CPU.pins[14] , true );
apspijkerman 0:f032bf4440c4 657 }
apspijkerman 0:f032bf4440c4 658
apspijkerman 0:f032bf4440c4 659
apspijkerman 0:f032bf4440c4 660 // interface with ltc1298 chip
apspijkerman 0:f032bf4440c4 661
apspijkerman 0:f032bf4440c4 662 // static int gEnablePin; // speedup ?
apspijkerman 0:f032bf4440c4 663 // static int gClockPin;
apspijkerman 0:f032bf4440c4 664 // static int gDataPin;
apspijkerman 0:f032bf4440c4 665
apspijkerman 0:f032bf4440c4 666 static void initadc(int dataPin, int clockPin, int enablePin){
apspijkerman 0:f032bf4440c4 667
apspijkerman 0:f032bf4440c4 668 //gEnablePin = CPU.pins[enablePin]; // speedup ?
apspijkerman 0:f032bf4440c4 669 //gClockPin = CPU.pins[clockPin];
apspijkerman 0:f032bf4440c4 670 //gDataPin = CPU.pins[dataPin];
apspijkerman 0:f032bf4440c4 671
apspijkerman 0:f032bf4440c4 672 CPU.writePin(CPU.pins[enablePin],false); // init the bus
apspijkerman 0:f032bf4440c4 673 CPU.writePin(CPU.pins[clockPin ],false);
apspijkerman 0:f032bf4440c4 674 CPU.delay(100); // settle down
apspijkerman 0:f032bf4440c4 675 CPU.writePin(CPU.pins[enablePin],false);
apspijkerman 0:f032bf4440c4 676 CPU.writePin(CPU.pins[enablePin],true );
apspijkerman 0:f032bf4440c4 677
apspijkerman 0:f032bf4440c4 678 //CPU.writePin(CPU.pins[dataPin ],false ); // test
apspijkerman 0:f032bf4440c4 679 //Serial.print(CPU.pins[ 1 ]); // just adds one ?
apspijkerman 0:f032bf4440c4 680 }
apspijkerman 0:f032bf4440c4 681
apspijkerman 0:f032bf4440c4 682 static int readadc(int dataPin, int clockPin, int enablePin, int channel, int
apspijkerman 0:f032bf4440c4 683
apspijkerman 0:f032bf4440c4 684 mode){
apspijkerman 0:f032bf4440c4 685
apspijkerman 0:f032bf4440c4 686 int command, readSize;
apspijkerman 0:f032bf4440c4 687 int clockIn;
apspijkerman 0:f032bf4440c4 688
apspijkerman 0:f032bf4440c4 689 if (channel == 0) command = 0x1a; // %11010 read ch0 (pin2)
apspijkerman 0:f032bf4440c4 690 else command = 0x1e; // %11110 read ch1 (pin3)
apspijkerman 0:f032bf4440c4 691
apspijkerman 0:f032bf4440c4 692 readSize = 12; // Bytes to Read on the LTC1298
apspijkerman 0:f032bf4440c4 693 //resolution = 4096; // Range of the LTC1298
apspijkerman 0:f032bf4440c4 694 //clockIn = 1000;
apspijkerman 0:f032bf4440c4 695
apspijkerman 0:f032bf4440c4 696 CPU.writePin(CPU.pins[enablePin],false);
apspijkerman 0:f032bf4440c4 697 // set port
apspijkerman 0:f032bf4440c4 698 CPU.shiftOut(CPU.pins[dataPin],CPU.pins[clockPin],5,CPU.SHIFT_MSB,(command <<
apspijkerman 0:f032bf4440c4 699
apspijkerman 0:f032bf4440c4 700 11));
apspijkerman 0:f032bf4440c4 701 // read the value
apspijkerman 0:f032bf4440c4 702 clockIn =
apspijkerman 0:f032bf4440c4 703
apspijkerman 0:f032bf4440c4 704 CPU.shiftIn(CPU.pins[dataPin],CPU.pins[clockPin],readSize,CPU.PRE_CLOCK_MSB);
apspijkerman 0:f032bf4440c4 705 CPU.writePin(CPU.pins[enablePin],true);
apspijkerman 0:f032bf4440c4 706
apspijkerman 0:f032bf4440c4 707 //CPU.delay(100);
apspijkerman 0:f032bf4440c4 708 //CPU.writePin(CPU.pins[dataPin],false ); // test
apspijkerman 0:f032bf4440c4 709 //CPU.setInput(dataPin);
apspijkerman 0:f032bf4440c4 710
apspijkerman 0:f032bf4440c4 711
apspijkerman 0:f032bf4440c4 712 if (mode == 0){ // low
apspijkerman 0:f032bf4440c4 713 clockIn = clockIn - (2048-128);
apspijkerman 0:f032bf4440c4 714 }else{
apspijkerman 0:f032bf4440c4 715 if (mode == 1){ // high
apspijkerman 0:f032bf4440c4 716 //clockIn = clockIn / 16; // make 8 bits from 12
apspijkerman 0:f032bf4440c4 717 clockIn = clockIn >> 4; // make 8 bits from 12
apspijkerman 0:f032bf4440c4 718 }else{ // gnd
apspijkerman 0:f032bf4440c4 719 clockIn = 128;
apspijkerman 0:f032bf4440c4 720 }
apspijkerman 0:f032bf4440c4 721 }
apspijkerman 0:f032bf4440c4 722
apspijkerman 0:f032bf4440c4 723 // Serial.print("v:");
apspijkerman 0:f032bf4440c4 724 // Serial.print(channel);
apspijkerman 0:f032bf4440c4 725 // Serial.print(",");
apspijkerman 0:f032bf4440c4 726 // Serial.print(clockIn);
apspijkerman 0:f032bf4440c4 727 // Serial.println("");
apspijkerman 0:f032bf4440c4 728
apspijkerman 0:f032bf4440c4 729 return clockIn;
apspijkerman 0:f032bf4440c4 730 }
apspijkerman 0:f032bf4440c4 731 */
apspijkerman 0:f032bf4440c4 732
apspijkerman 0:f032bf4440c4 733
apspijkerman 0:f032bf4440c4 734 /*
apspijkerman 0:f032bf4440c4 735 static int measure(int channel, int mode) {
apspijkerman 0:f032bf4440c4 736 int e, time;
apspijkerman 0:f032bf4440c4 737
apspijkerman 0:f032bf4440c4 738 if (channel == 0){ // chan a
apspijkerman 0:f032bf4440c4 739 if (mode == 0){
apspijkerman 0:f032bf4440c4 740 e = 13; // a low
apspijkerman 0:f032bf4440c4 741 }else{
apspijkerman 0:f032bf4440c4 742 if (mode == 1){
apspijkerman 0:f032bf4440c4 743 e = 11; // a high
apspijkerman 0:f032bf4440c4 744 }else{
apspijkerman 0:f032bf4440c4 745 return 128; // gnd
apspijkerman 0:f032bf4440c4 746 }
apspijkerman 0:f032bf4440c4 747 }
apspijkerman 0:f032bf4440c4 748 }else{ // chan b
apspijkerman 0:f032bf4440c4 749 if (mode == 0){
apspijkerman 0:f032bf4440c4 750 e = 12; // b low
apspijkerman 0:f032bf4440c4 751 }else{
apspijkerman 0:f032bf4440c4 752 if (mode == 1){
apspijkerman 0:f032bf4440c4 753 e = 10; // b high
apspijkerman 0:f032bf4440c4 754 }else{
apspijkerman 0:f032bf4440c4 755 return 128; // gnd
apspijkerman 0:f032bf4440c4 756 }
apspijkerman 0:f032bf4440c4 757 }
apspijkerman 0:f032bf4440c4 758 }
apspijkerman 0:f032bf4440c4 759
apspijkerman 0:f032bf4440c4 760 // PULSOUT dischargecap, 10 '2uS units -> 20uS
apspijkerman 0:f032bf4440c4 761
apspijkerman 0:f032bf4440c4 762 //CPU.writePin(CPU.pins[15] , 1 ); // discharge cap
apspijkerman 0:f032bf4440c4 763 //CPU.delay( 1 );
apspijkerman 0:f032bf4440c4 764 //CPU.writePin(CPU.pins[15] , 0 );
apspijkerman 0:f032bf4440c4 765 CPU.pulseOut(2, CPU.pins[15] ); // 2 x 8.7 = 17 uS
apspijkerman 0:f032bf4440c4 766
apspijkerman 0:f032bf4440c4 767 // LOW chargecap 'start charge
apspijkerman 0:f032bf4440c4 768 // RCTIME chanahigh, 0 , val 'PULSIN
apspijkerman 0:f032bf4440c4 769 // HIGH chargecap 'stop charge
apspijkerman 0:f032bf4440c4 770
apspijkerman 0:f032bf4440c4 771 CPU.writePin(CPU.pins[14] , false );
apspijkerman 0:f032bf4440c4 772 time = CPU.rcTime( 1000 ,CPU.pins[ e ], true ); // 8.68 uS units (0-200uS)
apspijkerman 0:f032bf4440c4 773 CPU.writePin(CPU.pins[14] , true );
apspijkerman 0:f032bf4440c4 774
apspijkerman 0:f032bf4440c4 775 //CPU.readPin( CPU.pins[e]); // switch back to input
apspijkerman 0:f032bf4440c4 776 time = time << 3; // resolution 8 times lower as basic stamp
apspijkerman 0:f032bf4440c4 777
apspijkerman 0:f032bf4440c4 778 return time;
apspijkerman 0:f032bf4440c4 779 }
apspijkerman 0:f032bf4440c4 780 */
apspijkerman 0:f032bf4440c4 781
apspijkerman 0:f032bf4440c4 782
apspijkerman 0:f032bf4440c4 783 #define boolean int
apspijkerman 0:f032bf4440c4 784
apspijkerman 0:f032bf4440c4 785 // ChanXMode '0=off, 1=low, 2=high, 3=gnd ?
apspijkerman 0:f032bf4440c4 786 // Mode '0=scope, 1=XY, 2=record (3=off ?)
apspijkerman 0:f032bf4440c4 787
apspijkerman 0:f032bf4440c4 788 int main() {
apspijkerman 0:f032bf4440c4 789 boolean ready; // Bit
apspijkerman 0:f032bf4440c4 790 int x, s, cnt = 0, ptr, speed = 0; // Byte
apspijkerman 0:f032bf4440c4 791 int x1, y1, x2, y2, ecnt = 0;
apspijkerman 0:f032bf4440c4 792 int mem[10]; // int [] mem;
apspijkerman 0:f032bf4440c4 793
apspijkerman 0:f032bf4440c4 794 //StringBuffer serbuf = new StringBuffer(80);
apspijkerman 0:f032bf4440c4 795
apspijkerman 0:f032bf4440c4 796 //mem = new int [10];
apspijkerman 0:f032bf4440c4 797
apspijkerman 0:f032bf4440c4 798 InitStampdock();
apspijkerman 0:f032bf4440c4 799
apspijkerman 0:f032bf4440c4 800 serial.printf("demo running .. \r\n");
apspijkerman 0:f032bf4440c4 801
apspijkerman 0:f032bf4440c4 802
apspijkerman 0:f032bf4440c4 803
apspijkerman 0:f032bf4440c4 804 for (cnt = 0; cnt < 100; cnt++){
apspijkerman 0:f032bf4440c4 805 SetValue(cnt, 0);
apspijkerman 0:f032bf4440c4 806 }
apspijkerman 0:f032bf4440c4 807
apspijkerman 0:f032bf4440c4 808 Cmd("!j0,250,0,0;"); // LED 0 to red
apspijkerman 0:f032bf4440c4 809 Cmd("!j1,0,250,0;"); // LED 1 to green
apspijkerman 0:f032bf4440c4 810 Cmd("!j2,0,0,250;"); // LED 2 to blue
apspijkerman 0:f032bf4440c4 811 Cmd("!j3,4;"); // LED 3 to white
apspijkerman 0:f032bf4440c4 812
apspijkerman 0:f032bf4440c4 813 Cmd4( 'j', 0, 250, 0, 0 ); // LED 0 to red
apspijkerman 0:f032bf4440c4 814
apspijkerman 0:f032bf4440c4 815 SetColor(100,100,200);
apspijkerman 0:f032bf4440c4 816 ClearScreen(); // clear graph
apspijkerman 0:f032bf4440c4 817
apspijkerman 0:f032bf4440c4 818 SetColor(128,128,228);
apspijkerman 0:f032bf4440c4 819 DrawGrid(20,20,29,19,55,12);
apspijkerman 0:f032bf4440c4 820
apspijkerman 0:f032bf4440c4 821 SetColor(0,0,0); // black
apspijkerman 0:f032bf4440c4 822 for (cnt = 0; cnt < 20; cnt++){
apspijkerman 0:f032bf4440c4 823
apspijkerman 0:f032bf4440c4 824 x1 = cnt * 10;
apspijkerman 0:f032bf4440c4 825 y1 = 15;
apspijkerman 0:f032bf4440c4 826
apspijkerman 0:f032bf4440c4 827 Plot(x1, y1);
apspijkerman 0:f032bf4440c4 828 }
apspijkerman 0:f032bf4440c4 829
apspijkerman 0:f032bf4440c4 830 for (cnt = 0; cnt < 20; cnt++){
apspijkerman 0:f032bf4440c4 831 x1 = 10 * cnt;
apspijkerman 0:f032bf4440c4 832 x2 = 15 * cnt;
apspijkerman 0:f032bf4440c4 833 y1 = 20;
apspijkerman 0:f032bf4440c4 834 y2 = 40;
apspijkerman 0:f032bf4440c4 835 DrawLine(x1,y1,x2,y2);
apspijkerman 0:f032bf4440c4 836 }
apspijkerman 0:f032bf4440c4 837
apspijkerman 0:f032bf4440c4 838 Cmd("!f12;"); // set greyscale value 12
apspijkerman 0:f032bf4440c4 839 Cmd("!r60,60,100,100;"); // draw rectangle
apspijkerman 0:f032bf4440c4 840
apspijkerman 0:f032bf4440c4 841 Cmd("!h10,70;"); // set draw position to home or 10,70
apspijkerman 0:f032bf4440c4 842 Cmd("!g50;"); // draw grey pixel and increase
apspijkerman 0:f032bf4440c4 843 Cmd("!g100;"); // draw grey pixel and increase
apspijkerman 0:f032bf4440c4 844 Cmd("!g150;"); // draw grey pixel and increase
apspijkerman 0:f032bf4440c4 845 Cmd("!g200;"); // draw grey pixel and increase
apspijkerman 0:f032bf4440c4 846 Cmd("!w10;"); // draw 10 white pixels and increase
apspijkerman 0:f032bf4440c4 847 Cmd("!b10;"); // draw 10 black pixels and increase
apspijkerman 0:f032bf4440c4 848
apspijkerman 0:f032bf4440c4 849
apspijkerman 0:f032bf4440c4 850 s = 80;
apspijkerman 0:f032bf4440c4 851 //serbuf.clear();
apspijkerman 0:f032bf4440c4 852 //serbuf.append("!Pb"); // poly line, binary mode
apspijkerman 0:f032bf4440c4 853 //serbuf.append((char)33); // 33 values follow
apspijkerman 0:f032bf4440c4 854 //serbuf.append((char)20); // dx=20
apspijkerman 0:f032bf4440c4 855 //serbuf.append((char) 0); // dy=0 .. so only y values
apspijkerman 0:f032bf4440c4 856 //serbuf.append((char)60); // x start
apspijkerman 0:f032bf4440c4 857 //serbuf.append((char) s); // y start
apspijkerman 0:f032bf4440c4 858
apspijkerman 0:f032bf4440c4 859 serial.printf("!Pb%c%c%c%c%c", 33, 20, 0, 60, s );
apspijkerman 0:f032bf4440c4 860
apspijkerman 0:f032bf4440c4 861 for (cnt = 0; cnt <= 28; cnt++){
apspijkerman 0:f032bf4440c4 862 x = cnt * cnt;
apspijkerman 0:f032bf4440c4 863 //serbuf.append((char) x ); // y value of next line
apspijkerman 0:f032bf4440c4 864
apspijkerman 0:f032bf4440c4 865 serial.printf("%c", x );
apspijkerman 0:f032bf4440c4 866 }
apspijkerman 0:f032bf4440c4 867
apspijkerman 0:f032bf4440c4 868 //serbuf.append(";"); // end poly line cmd
apspijkerman 0:f032bf4440c4 869 //System.out.print(serbuf.toString());
apspijkerman 0:f032bf4440c4 870 serial.printf(";");
apspijkerman 0:f032bf4440c4 871
apspijkerman 0:f032bf4440c4 872
apspijkerman 0:f032bf4440c4 873 // do some file access
apspijkerman 0:f032bf4440c4 874
apspijkerman 0:f032bf4440c4 875 Cmd("!Otempfile.txt;"); // open file for writing
apspijkerman 0:f032bf4440c4 876 Cmd("!e12,24,48,96;"); // write some values
apspijkerman 0:f032bf4440c4 877 Cmd("!O;"); // close file
apspijkerman 0:f032bf4440c4 878
apspijkerman 0:f032bf4440c4 879 Cmd("?Otempfile.txt;"); // open file for reading
apspijkerman 0:f032bf4440c4 880 ReadByte();
apspijkerman 0:f032bf4440c4 881 ReadByte();
apspijkerman 0:f032bf4440c4 882 ReadByte();
apspijkerman 0:f032bf4440c4 883 s = ReadByte(); // read LSB size of file
apspijkerman 0:f032bf4440c4 884 serial.printf("file is ");
apspijkerman 0:f032bf4440c4 885 serial.printf( "%d", s );
apspijkerman 0:f032bf4440c4 886 serial.printf(" bytes.\r\n");
apspijkerman 0:f032bf4440c4 887
apspijkerman 0:f032bf4440c4 888 serial.printf("read values: ");
apspijkerman 0:f032bf4440c4 889 for (cnt = 0; cnt < s; cnt++){
apspijkerman 0:f032bf4440c4 890 Cmd("?e;"); // read a byte
apspijkerman 0:f032bf4440c4 891 x = ReadByte();
apspijkerman 0:f032bf4440c4 892 serial.printf( "%d", x );
apspijkerman 0:f032bf4440c4 893 serial.printf(",");
apspijkerman 0:f032bf4440c4 894 }
apspijkerman 0:f032bf4440c4 895 serial.printf("\r\n");
apspijkerman 0:f032bf4440c4 896 Cmd("?O;"); // close file
apspijkerman 0:f032bf4440c4 897 ReadByte();
apspijkerman 0:f032bf4440c4 898
apspijkerman 0:f032bf4440c4 899
apspijkerman 0:f032bf4440c4 900 serial.printf("ticks is: ");
apspijkerman 0:f032bf4440c4 901 Cmd("?t0;"); // request ticks
apspijkerman 0:f032bf4440c4 902 for (cnt = 0; cnt < 4; cnt++){
apspijkerman 0:f032bf4440c4 903 mem[cnt] = (int) ReadByte();
apspijkerman 0:f032bf4440c4 904 }
apspijkerman 0:f032bf4440c4 905 for (cnt = 0; cnt < 4; cnt++){
apspijkerman 0:f032bf4440c4 906 serial.printf( "%d", mem[cnt] );
apspijkerman 0:f032bf4440c4 907 serial.printf(",");
apspijkerman 0:f032bf4440c4 908 }
apspijkerman 0:f032bf4440c4 909 serial.printf("\r\n");
apspijkerman 0:f032bf4440c4 910
apspijkerman 0:f032bf4440c4 911
apspijkerman 0:f032bf4440c4 912
apspijkerman 0:f032bf4440c4 913 serial.printf("time: y2 y1 mon day hour min sec tic : ");
apspijkerman 0:f032bf4440c4 914 Cmd("?t1;"); // request time
apspijkerman 0:f032bf4440c4 915 for (cnt = 0; cnt < 8; cnt++){
apspijkerman 0:f032bf4440c4 916 mem[cnt] = ReadByte();
apspijkerman 0:f032bf4440c4 917 }
apspijkerman 0:f032bf4440c4 918 for (cnt = 0; cnt < 8; cnt++){
apspijkerman 0:f032bf4440c4 919 serial.printf( "%d", mem[cnt] );
apspijkerman 0:f032bf4440c4 920 serial.printf(",");
apspijkerman 0:f032bf4440c4 921 }
apspijkerman 0:f032bf4440c4 922 serial.printf("\r\n");
apspijkerman 0:f032bf4440c4 923
apspijkerman 0:f032bf4440c4 924 // for (cnt = 0; cnt < 50; cnt++)
apspijkerman 0:f032bf4440c4 925 // Cmd2( 'G', 20, 1 ); // do "!G20,1;"
apspijkerman 0:f032bf4440c4 926
apspijkerman 0:f032bf4440c4 927
apspijkerman 0:f032bf4440c4 928 Cmd("!nThis is a speech test.;");
apspijkerman 0:f032bf4440c4 929
apspijkerman 0:f032bf4440c4 930 Cmd("!LThis is a log file test;");
apspijkerman 0:f032bf4440c4 931
apspijkerman 0:f032bf4440c4 932 Cmd("!Vmedia/video.mpg;");
apspijkerman 0:f032bf4440c4 933 wait( 1.1 ); // CPU.delay(1000);
apspijkerman 0:f032bf4440c4 934 Cmd("!Vmedia/sound.mp3;");
apspijkerman 0:f032bf4440c4 935 wait (1.1); // CPU.delay(1000);
apspijkerman 0:f032bf4440c4 936 Cmd("!Vmedia/pic.jpg;");
apspijkerman 0:f032bf4440c4 937
apspijkerman 0:f032bf4440c4 938 while (true){
apspijkerman 0:f032bf4440c4 939 if (ecnt == 2){ // test speed up
apspijkerman 0:f032bf4440c4 940 x = GetEvent();
apspijkerman 0:f032bf4440c4 941 ecnt = 0;
apspijkerman 0:f032bf4440c4 942 }else{
apspijkerman 0:f032bf4440c4 943 ecnt++;
apspijkerman 0:f032bf4440c4 944 x = 0;
apspijkerman 0:f032bf4440c4 945 }
apspijkerman 0:f032bf4440c4 946
apspijkerman 0:f032bf4440c4 947 if (x != 0){ // do we have a gui click or event ?
apspijkerman 0:f032bf4440c4 948 ecnt = 0; // just had an event, so max wait
apspijkerman 0:f032bf4440c4 949 s = GetValue(x); // get value of gui element x
apspijkerman 0:f032bf4440c4 950
apspijkerman 0:f032bf4440c4 951 // now handle GUI element x with value/state s
apspijkerman 0:f032bf4440c4 952 if (x == 1){
apspijkerman 0:f032bf4440c4 953 //mode = s;
apspijkerman 0:f032bf4440c4 954 // clear graph
apspijkerman 0:f032bf4440c4 955 //'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c
apspijkerman 0:f032bf4440c4 956 //DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color
apspijkerman 0:f032bf4440c4 957
apspijkerman 0:f032bf4440c4 958
apspijkerman 0:f032bf4440c4 959 //serial.printf("!s100,100,200;!c;");
apspijkerman 0:f032bf4440c4 960 SetColor(100,100,200);
apspijkerman 0:f032bf4440c4 961 ClearScreen();
apspijkerman 0:f032bf4440c4 962 } else
apspijkerman 0:f032bf4440c4 963
apspijkerman 0:f032bf4440c4 964 if (x == 10){ // checkmark 0
apspijkerman 0:f032bf4440c4 965 SetValue(12, s); // set checkmark 2
apspijkerman 0:f032bf4440c4 966 } else
apspijkerman 0:f032bf4440c4 967 if (x == 11){ // checkmark 1
apspijkerman 0:f032bf4440c4 968 SetValue(13, s); // set checkmark 3
apspijkerman 0:f032bf4440c4 969 } else
apspijkerman 0:f032bf4440c4 970
apspijkerman 0:f032bf4440c4 971 if (x == 20){ // hor switch 0
apspijkerman 0:f032bf4440c4 972 SetValue(21, s); // set hor switch 1
apspijkerman 0:f032bf4440c4 973 } else
apspijkerman 0:f032bf4440c4 974 if (x == 21){ // hor switch1
apspijkerman 0:f032bf4440c4 975 SetValue(20, s); // set hor switch 0
apspijkerman 0:f032bf4440c4 976 } else
apspijkerman 0:f032bf4440c4 977
apspijkerman 0:f032bf4440c4 978 if (x == 40){ // hor potm 0
apspijkerman 0:f032bf4440c4 979 SetValue(41, s); // hor potm 1
apspijkerman 0:f032bf4440c4 980 SetValue(60, s); // set analog meter
apspijkerman 0:f032bf4440c4 981 } else
apspijkerman 0:f032bf4440c4 982 if (x == 41){ // hor potm 1
apspijkerman 0:f032bf4440c4 983 SetValue(40, s); // hor potm 0
apspijkerman 0:f032bf4440c4 984 SetValue(61, s); // set analog meter
apspijkerman 0:f032bf4440c4 985 } else
apspijkerman 0:f032bf4440c4 986
apspijkerman 0:f032bf4440c4 987 if (x == 100){ // turn knob 0
apspijkerman 0:f032bf4440c4 988 SetValue(101, s); // turn knob 1
apspijkerman 0:f032bf4440c4 989 } else
apspijkerman 0:f032bf4440c4 990 if (x == 101){ // turn knob 1
apspijkerman 0:f032bf4440c4 991 SetValue(100, s); // turn knob 0
apspijkerman 0:f032bf4440c4 992 } else
apspijkerman 0:f032bf4440c4 993
apspijkerman 0:f032bf4440c4 994 if (x == 90){ // button 1
apspijkerman 0:f032bf4440c4 995 ScrollLeft(); // scroll left 1 pixel
apspijkerman 0:f032bf4440c4 996 }
apspijkerman 0:f032bf4440c4 997
apspijkerman 0:f032bf4440c4 998
apspijkerman 0:f032bf4440c4 999 } // if event
apspijkerman 0:f032bf4440c4 1000
apspijkerman 0:f032bf4440c4 1001 wait(0.1); // CPU.delay(100);
apspijkerman 0:f032bf4440c4 1002
apspijkerman 0:f032bf4440c4 1003 // do ..
apspijkerman 0:f032bf4440c4 1004
apspijkerman 0:f032bf4440c4 1005
apspijkerman 0:f032bf4440c4 1006 } // end while true
apspijkerman 0:f032bf4440c4 1007 } // end main
apspijkerman 0:f032bf4440c4 1008
apspijkerman 0:f032bf4440c4 1009
apspijkerman 0:f032bf4440c4 1010
apspijkerman 0:f032bf4440c4 1011
apspijkerman 0:f032bf4440c4 1012 //} // class demo