First quick attempt at an oscilloscope 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:30:43 2010 +0000
Revision:
0:6a0d5fb13029
First version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apspijkerman 0:6a0d5fb13029 1
apspijkerman 0:6a0d5fb13029 2
apspijkerman 0:6a0d5fb13029 3 // mbed demo program (needs stampdock software)
apspijkerman 0:6a0d5fb13029 4 // by apspijkerman ap@apsdev.com
apspijkerman 0:6a0d5fb13029 5
apspijkerman 0:6a0d5fb13029 6
apspijkerman 0:6a0d5fb13029 7 #include "mbed.h"
apspijkerman 0:6a0d5fb13029 8
apspijkerman 0:6a0d5fb13029 9 //Serial pc(USBTX, USBRX); // tx, rx
apspijkerman 0:6a0d5fb13029 10 Serial serial(USBTX, USBRX); // tx, rx default 9600 8N1
apspijkerman 0:6a0d5fb13029 11
apspijkerman 0:6a0d5fb13029 12 AnalogIn xa(p15);
apspijkerman 0:6a0d5fb13029 13 AnalogIn ya(p16);
apspijkerman 0:6a0d5fb13029 14
apspijkerman 0:6a0d5fb13029 15 DigitalOut myled1(LED1);
apspijkerman 0:6a0d5fb13029 16 DigitalOut myled2(LED2);
apspijkerman 0:6a0d5fb13029 17 DigitalOut myled3(LED3);
apspijkerman 0:6a0d5fb13029 18 DigitalOut myled4(LED4);
apspijkerman 0:6a0d5fb13029 19
apspijkerman 0:6a0d5fb13029 20
apspijkerman 0:6a0d5fb13029 21 void SetLed(int led, int mode)
apspijkerman 0:6a0d5fb13029 22 {
apspijkerman 0:6a0d5fb13029 23 if (led == 0) myled1 = mode;
apspijkerman 0:6a0d5fb13029 24 if (led == 1) myled2 = mode;
apspijkerman 0:6a0d5fb13029 25 if (led == 2) myled3 = mode;
apspijkerman 0:6a0d5fb13029 26 if (led == 3) myled4 = mode;
apspijkerman 0:6a0d5fb13029 27 }
apspijkerman 0:6a0d5fb13029 28
apspijkerman 0:6a0d5fb13029 29
apspijkerman 0:6a0d5fb13029 30 void Blink(int led)
apspijkerman 0:6a0d5fb13029 31 {
apspijkerman 0:6a0d5fb13029 32 if (led == 0) myled1 = 1;
apspijkerman 0:6a0d5fb13029 33 if (led == 1) myled2 = 1;
apspijkerman 0:6a0d5fb13029 34 if (led == 2) myled3 = 1;
apspijkerman 0:6a0d5fb13029 35 if (led == 3) myled4 = 1;
apspijkerman 0:6a0d5fb13029 36 wait(0.1);
apspijkerman 0:6a0d5fb13029 37 if (led == 0) myled1 = 0;
apspijkerman 0:6a0d5fb13029 38 if (led == 1) myled2 = 0;
apspijkerman 0:6a0d5fb13029 39 if (led == 2) myled3 = 0;
apspijkerman 0:6a0d5fb13029 40 if (led == 3) myled4 = 0;
apspijkerman 0:6a0d5fb13029 41 }
apspijkerman 0:6a0d5fb13029 42
apspijkerman 0:6a0d5fb13029 43
apspijkerman 0:6a0d5fb13029 44
apspijkerman 0:6a0d5fb13029 45 void SetLeds(void)
apspijkerman 0:6a0d5fb13029 46 {
apspijkerman 0:6a0d5fb13029 47 int t;
apspijkerman 0:6a0d5fb13029 48
apspijkerman 0:6a0d5fb13029 49 // flash all leds
apspijkerman 0:6a0d5fb13029 50 /*
apspijkerman 0:6a0d5fb13029 51 for (t = 0; t < 4; t++){
apspijkerman 0:6a0d5fb13029 52 SetLed(t, 1);
apspijkerman 0:6a0d5fb13029 53 }
apspijkerman 0:6a0d5fb13029 54 wait(1);
apspijkerman 0:6a0d5fb13029 55 for (t = 0; t < 4; t++){
apspijkerman 0:6a0d5fb13029 56 SetLed(t, 0);
apspijkerman 0:6a0d5fb13029 57 }
apspijkerman 0:6a0d5fb13029 58 */
apspijkerman 0:6a0d5fb13029 59 // kitt led test
apspijkerman 0:6a0d5fb13029 60 for (t = 0; t < 4; t++){
apspijkerman 0:6a0d5fb13029 61 SetLed(t, 1);
apspijkerman 0:6a0d5fb13029 62 wait(0.2);
apspijkerman 0:6a0d5fb13029 63 SetLed(t, 0);
apspijkerman 0:6a0d5fb13029 64 }
apspijkerman 0:6a0d5fb13029 65 }
apspijkerman 0:6a0d5fb13029 66
apspijkerman 0:6a0d5fb13029 67
apspijkerman 0:6a0d5fb13029 68
apspijkerman 0:6a0d5fb13029 69 void ToggleLed(int led)
apspijkerman 0:6a0d5fb13029 70 {
apspijkerman 0:6a0d5fb13029 71 if (led == 0) myled1 = !myled1;
apspijkerman 0:6a0d5fb13029 72 if (led == 1) myled2 = !myled2;
apspijkerman 0:6a0d5fb13029 73 if (led == 2) myled3 = !myled3;
apspijkerman 0:6a0d5fb13029 74 if (led == 3) myled4 = !myled4;
apspijkerman 0:6a0d5fb13029 75 wait(0.25);
apspijkerman 0:6a0d5fb13029 76 }
apspijkerman 0:6a0d5fb13029 77
apspijkerman 0:6a0d5fb13029 78 //public class demo {
apspijkerman 0:6a0d5fb13029 79
apspijkerman 0:6a0d5fb13029 80 // seems we need to write commands in one go, so have a buffer
apspijkerman 0:6a0d5fb13029 81 //static StringBuffer buf = new StringBuffer(128);
apspijkerman 0:6a0d5fb13029 82
apspijkerman 0:6a0d5fb13029 83 // check if the system has events for us
apspijkerman 0:6a0d5fb13029 84 // if value greater then zero then thats the ID number of
apspijkerman 0:6a0d5fb13029 85 // the gui element or the event number
apspijkerman 0:6a0d5fb13029 86
apspijkerman 0:6a0d5fb13029 87
apspijkerman 0:6a0d5fb13029 88 void InitStampdock(void)
apspijkerman 0:6a0d5fb13029 89 {
apspijkerman 0:6a0d5fb13029 90 // serial.begin( 9600 );
apspijkerman 0:6a0d5fb13029 91 // serial.baud(19200);
apspijkerman 0:6a0d5fb13029 92 // serial.format(8,None,1);
apspijkerman 0:6a0d5fb13029 93 SetLeds();
apspijkerman 0:6a0d5fb13029 94
apspijkerman 0:6a0d5fb13029 95 }
apspijkerman 0:6a0d5fb13029 96
apspijkerman 0:6a0d5fb13029 97
apspijkerman 0:6a0d5fb13029 98
apspijkerman 0:6a0d5fb13029 99 static int GetEvent()
apspijkerman 0:6a0d5fb13029 100 {
apspijkerman 0:6a0d5fb13029 101 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:6a0d5fb13029 102 char v;
apspijkerman 0:6a0d5fb13029 103 // DEBUG "?Q;" 'query for events .. also sync with PC
apspijkerman 0:6a0d5fb13029 104 // SERIN 16, Baud, [x] '16468
apspijkerman 0:6a0d5fb13029 105 // PAUSE 1 ' millisecs .. let serial bus settle
apspijkerman 0:6a0d5fb13029 106
apspijkerman 0:6a0d5fb13029 107 //serial.printf("\n"); // test .. purge buffer ?
apspijkerman 0:6a0d5fb13029 108 serial.printf("?Q;"); // query for event
apspijkerman 0:6a0d5fb13029 109 //wait(0.11); //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 110 do{
apspijkerman 0:6a0d5fb13029 111 if (serial.readable()){
apspijkerman 0:6a0d5fb13029 112 //v = Serial.read();
apspijkerman 0:6a0d5fb13029 113 v = serial.getc();
apspijkerman 0:6a0d5fb13029 114
apspijkerman 0:6a0d5fb13029 115 e = v;
apspijkerman 0:6a0d5fb13029 116 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:6a0d5fb13029 117
apspijkerman 0:6a0d5fb13029 118 //e = (255-v) + 1; // 2's complement
apspijkerman 0:6a0d5fb13029 119
apspijkerman 0:6a0d5fb13029 120 //serial.printf("EVENT:");
apspijkerman 0:6a0d5fb13029 121 //serial.printf(e);
apspijkerman 0:6a0d5fb13029 122 //serial.printf("<-");
apspijkerman 0:6a0d5fb13029 123 ready = 1;
apspijkerman 0:6a0d5fb13029 124 }else{
apspijkerman 0:6a0d5fb13029 125 //serial.printf("no event");
apspijkerman 0:6a0d5fb13029 126 wait(0.0001);
apspijkerman 0:6a0d5fb13029 127 cnt++;
apspijkerman 0:6a0d5fb13029 128 if (cnt == 1000) ready = 1;
apspijkerman 0:6a0d5fb13029 129 Blink(0);
apspijkerman 0:6a0d5fb13029 130 }
apspijkerman 0:6a0d5fb13029 131 }while(!ready);
apspijkerman 0:6a0d5fb13029 132 //CPU.delay(10);
apspijkerman 0:6a0d5fb13029 133
apspijkerman 0:6a0d5fb13029 134 // .. flush out of sync events ..
apspijkerman 0:6a0d5fb13029 135 //while (serial.readable()){
apspijkerman 0:6a0d5fb13029 136 if (serial.readable()){
apspijkerman 0:6a0d5fb13029 137 // Serial.read();
apspijkerman 0:6a0d5fb13029 138 serial.getc();
apspijkerman 0:6a0d5fb13029 139 Blink(1);
apspijkerman 0:6a0d5fb13029 140 }
apspijkerman 0:6a0d5fb13029 141
apspijkerman 0:6a0d5fb13029 142 if (serial.readable()){
apspijkerman 0:6a0d5fb13029 143 // Serial.read();
apspijkerman 0:6a0d5fb13029 144 serial.getc();
apspijkerman 0:6a0d5fb13029 145 Blink(2);
apspijkerman 0:6a0d5fb13029 146 }
apspijkerman 0:6a0d5fb13029 147
apspijkerman 0:6a0d5fb13029 148 return e;
apspijkerman 0:6a0d5fb13029 149 }
apspijkerman 0:6a0d5fb13029 150
apspijkerman 0:6a0d5fb13029 151 // request the state of GUI element i
apspijkerman 0:6a0d5fb13029 152
apspijkerman 0:6a0d5fb13029 153 static int GetValue(int i)
apspijkerman 0:6a0d5fb13029 154 {
apspijkerman 0:6a0d5fb13029 155 int e = 0, ready = 0, cnt = 0;
apspijkerman 0:6a0d5fb13029 156 char v;
apspijkerman 0:6a0d5fb13029 157 //StringBuffer buf=new StringBuffer(12);
apspijkerman 0:6a0d5fb13029 158
apspijkerman 0:6a0d5fb13029 159 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:6a0d5fb13029 160 // SERIN 16, Baud, [s] '16468
apspijkerman 0:6a0d5fb13029 161 // PAUSE 1 ' millisecs
apspijkerman 0:6a0d5fb13029 162
apspijkerman 0:6a0d5fb13029 163 //serial.printf("?i"); // query for event
apspijkerman 0:6a0d5fb13029 164 //serial.printf(i);
apspijkerman 0:6a0d5fb13029 165 //serial.printf(";");
apspijkerman 0:6a0d5fb13029 166
apspijkerman 0:6a0d5fb13029 167 //buf.clear();
apspijkerman 0:6a0d5fb13029 168 //buf.append("?i");
apspijkerman 0:6a0d5fb13029 169 //buf.append( i );
apspijkerman 0:6a0d5fb13029 170 //buf.append(";");
apspijkerman 0:6a0d5fb13029 171 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 172
apspijkerman 0:6a0d5fb13029 173 serial.printf("?i%d;", i );
apspijkerman 0:6a0d5fb13029 174
apspijkerman 0:6a0d5fb13029 175 //wait(0.1); //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 176 do {
apspijkerman 0:6a0d5fb13029 177 if (serial.readable()){
apspijkerman 0:6a0d5fb13029 178 //v = Serial.read();
apspijkerman 0:6a0d5fb13029 179 v = serial.getc();
apspijkerman 0:6a0d5fb13029 180
apspijkerman 0:6a0d5fb13029 181 e = v;
apspijkerman 0:6a0d5fb13029 182 if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:6a0d5fb13029 183
apspijkerman 0:6a0d5fb13029 184 //e = (255-v) + 1; // 2's complement
apspijkerman 0:6a0d5fb13029 185 ready = 1;
apspijkerman 0:6a0d5fb13029 186 }else{
apspijkerman 0:6a0d5fb13029 187 wait(0.0001);
apspijkerman 0:6a0d5fb13029 188 cnt++;
apspijkerman 0:6a0d5fb13029 189 if (cnt == 1000) ready = 1;
apspijkerman 0:6a0d5fb13029 190 }
apspijkerman 0:6a0d5fb13029 191 //CPU.delay(10);
apspijkerman 0:6a0d5fb13029 192 }while(!ready);
apspijkerman 0:6a0d5fb13029 193 return e;
apspijkerman 0:6a0d5fb13029 194 }
apspijkerman 0:6a0d5fb13029 195
apspijkerman 0:6a0d5fb13029 196 // set the state (v) of gui element i
apspijkerman 0:6a0d5fb13029 197
apspijkerman 0:6a0d5fb13029 198 static void SetValue(int i, int v)
apspijkerman 0:6a0d5fb13029 199 {
apspijkerman 0:6a0d5fb13029 200 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:6a0d5fb13029 201
apspijkerman 0:6a0d5fb13029 202 // DEBUG "?i",DEC x,";" 'get state of gui element x
apspijkerman 0:6a0d5fb13029 203 // SERIN 16, Baud, [s] '16468
apspijkerman 0:6a0d5fb13029 204 // PAUSE 1 ' millisecs
apspijkerman 0:6a0d5fb13029 205
apspijkerman 0:6a0d5fb13029 206 //serial.printf("!i"); // set value
apspijkerman 0:6a0d5fb13029 207 //serial.printf(i);
apspijkerman 0:6a0d5fb13029 208 //serial.printf(",")
apspijkerman 0:6a0d5fb13029 209 //serial.printf(v);
apspijkerman 0:6a0d5fb13029 210 //serial.printf(";");
apspijkerman 0:6a0d5fb13029 211
apspijkerman 0:6a0d5fb13029 212 //buf.clear(); // slow ascii method to allow values > 255
apspijkerman 0:6a0d5fb13029 213 if (i <= 255){
apspijkerman 0:6a0d5fb13029 214 //buf.append("!ib"); // fast binary way
apspijkerman 0:6a0d5fb13029 215 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:6a0d5fb13029 216 //buf.append((char) i ); // write id
apspijkerman 0:6a0d5fb13029 217 //buf.append((char) v ); // always smaller als 256
apspijkerman 0:6a0d5fb13029 218
apspijkerman 0:6a0d5fb13029 219 serial.printf("!ib%c%c%c;", 2 , i , v );
apspijkerman 0:6a0d5fb13029 220 }else{
apspijkerman 0:6a0d5fb13029 221 //buf.append("!i"); // slow ascii way
apspijkerman 0:6a0d5fb13029 222 //buf.append( i ); // in case ID greater as 255
apspijkerman 0:6a0d5fb13029 223 //buf.append(",");
apspijkerman 0:6a0d5fb13029 224 //buf.append( v );
apspijkerman 0:6a0d5fb13029 225
apspijkerman 0:6a0d5fb13029 226 serial.printf("!i%d,%d;", i, v);
apspijkerman 0:6a0d5fb13029 227 }
apspijkerman 0:6a0d5fb13029 228 //buf.append(";");
apspijkerman 0:6a0d5fb13029 229 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 230
apspijkerman 0:6a0d5fb13029 231 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 232 }
apspijkerman 0:6a0d5fb13029 233
apspijkerman 0:6a0d5fb13029 234
apspijkerman 0:6a0d5fb13029 235 static char ReadByte()
apspijkerman 0:6a0d5fb13029 236 {
apspijkerman 0:6a0d5fb13029 237 char v = 0, ready = 0, cnt = 0;
apspijkerman 0:6a0d5fb13029 238
apspijkerman 0:6a0d5fb13029 239 //wait(0.1);
apspijkerman 0:6a0d5fb13029 240 do {
apspijkerman 0:6a0d5fb13029 241 if (serial.readable()){
apspijkerman 0:6a0d5fb13029 242 //v = Serial.read();
apspijkerman 0:6a0d5fb13029 243 v = serial.getc();
apspijkerman 0:6a0d5fb13029 244
apspijkerman 0:6a0d5fb13029 245 //e = v;
apspijkerman 0:6a0d5fb13029 246 //if (e < 0) e += 256; // signed char to int ?
apspijkerman 0:6a0d5fb13029 247 ready = 1;
apspijkerman 0:6a0d5fb13029 248 }else{
apspijkerman 0:6a0d5fb13029 249 wait(0.0001);
apspijkerman 0:6a0d5fb13029 250 cnt++;
apspijkerman 0:6a0d5fb13029 251 if (cnt == 1000) ready = 1;
apspijkerman 0:6a0d5fb13029 252 }
apspijkerman 0:6a0d5fb13029 253 }while(!ready);
apspijkerman 0:6a0d5fb13029 254 return v;
apspijkerman 0:6a0d5fb13029 255 }
apspijkerman 0:6a0d5fb13029 256
apspijkerman 0:6a0d5fb13029 257
apspijkerman 0:6a0d5fb13029 258 static void SetColor(int r, int g, int b)
apspijkerman 0:6a0d5fb13029 259 {
apspijkerman 0:6a0d5fb13029 260 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:6a0d5fb13029 261
apspijkerman 0:6a0d5fb13029 262 if (r == 0 && g == 0 && b == 0){
apspijkerman 0:6a0d5fb13029 263 serial.printf("!s;"); // black
apspijkerman 0:6a0d5fb13029 264 }else{
apspijkerman 0:6a0d5fb13029 265 //buf.clear();
apspijkerman 0:6a0d5fb13029 266 //buf.append("!sb"); // fast binary method .. so values <= 255
apspijkerman 0:6a0d5fb13029 267 //buf.append((char) 3 ); // write 3 bytes
apspijkerman 0:6a0d5fb13029 268 //buf.append((char) r );
apspijkerman 0:6a0d5fb13029 269 //buf.append((char) g );
apspijkerman 0:6a0d5fb13029 270 //buf.append((char) b );
apspijkerman 0:6a0d5fb13029 271 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 272 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 273
apspijkerman 0:6a0d5fb13029 274 serial.printf("!sb%c%c%c%c;", 3, r, g, b );
apspijkerman 0:6a0d5fb13029 275 }
apspijkerman 0:6a0d5fb13029 276 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 277 }
apspijkerman 0:6a0d5fb13029 278
apspijkerman 0:6a0d5fb13029 279
apspijkerman 0:6a0d5fb13029 280 static void SetGrey(int g)
apspijkerman 0:6a0d5fb13029 281 {
apspijkerman 0:6a0d5fb13029 282 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:6a0d5fb13029 283
apspijkerman 0:6a0d5fb13029 284 // DEBUG "!fb", 1, dat, ";"
apspijkerman 0:6a0d5fb13029 285
apspijkerman 0:6a0d5fb13029 286 if (g == 0){
apspijkerman 0:6a0d5fb13029 287 //System.out.print("!f;"); // black
apspijkerman 0:6a0d5fb13029 288 serial.printf("!f;"); // black
apspijkerman 0:6a0d5fb13029 289 }else{
apspijkerman 0:6a0d5fb13029 290 //buf.clear();
apspijkerman 0:6a0d5fb13029 291 //buf.append("!fb"); // fast binary method .. so values <= 255
apspijkerman 0:6a0d5fb13029 292 //buf.append((char) 1 ); // write 3 bytes
apspijkerman 0:6a0d5fb13029 293 //buf.append((char) g );
apspijkerman 0:6a0d5fb13029 294 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 295 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 296
apspijkerman 0:6a0d5fb13029 297
apspijkerman 0:6a0d5fb13029 298 serial.printf("!sf%c%c;", 1, g );
apspijkerman 0:6a0d5fb13029 299 }
apspijkerman 0:6a0d5fb13029 300 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 301 }
apspijkerman 0:6a0d5fb13029 302
apspijkerman 0:6a0d5fb13029 303
apspijkerman 0:6a0d5fb13029 304
apspijkerman 0:6a0d5fb13029 305 static void SetLED(int i, int r, int g, int b)
apspijkerman 0:6a0d5fb13029 306 {
apspijkerman 0:6a0d5fb13029 307 // StringBuffer buf=new StringBuffer(12);
apspijkerman 0:6a0d5fb13029 308
apspijkerman 0:6a0d5fb13029 309 //buf.clear();
apspijkerman 0:6a0d5fb13029 310 //buf.append("!jb"); // fast binary method .. so values <= 255
apspijkerman 0:6a0d5fb13029 311 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:6a0d5fb13029 312 //buf.append((char) i );
apspijkerman 0:6a0d5fb13029 313 //buf.append((char) r );
apspijkerman 0:6a0d5fb13029 314 //buf.append((char) g );
apspijkerman 0:6a0d5fb13029 315 //buf.append((char) b );
apspijkerman 0:6a0d5fb13029 316 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 317 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 318
apspijkerman 0:6a0d5fb13029 319 serial.printf("!jb%c%c%c%c%c;", 4, i, r, g, b );
apspijkerman 0:6a0d5fb13029 320
apspijkerman 0:6a0d5fb13029 321 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 322 }
apspijkerman 0:6a0d5fb13029 323
apspijkerman 0:6a0d5fb13029 324 static void DrawLine(int x1, int y1, int x2, int y2)
apspijkerman 0:6a0d5fb13029 325 {
apspijkerman 0:6a0d5fb13029 326 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:6a0d5fb13029 327
apspijkerman 0:6a0d5fb13029 328 //if (x1 < 0) x1 = 0;
apspijkerman 0:6a0d5fb13029 329 //if (y1 < 0) y1 = 0;
apspijkerman 0:6a0d5fb13029 330 //if (x2 < 0) x2 = 0;
apspijkerman 0:6a0d5fb13029 331 //if (y2 < 0) y2 = 0;
apspijkerman 0:6a0d5fb13029 332
apspijkerman 0:6a0d5fb13029 333 //buf.clear();
apspijkerman 0:6a0d5fb13029 334 if (x1 >= 0 && x1 <= 255 && y1 >= 0 && y1 <= 255 && x2 >= 0 && x2 <= 255 && y2
apspijkerman 0:6a0d5fb13029 335
apspijkerman 0:6a0d5fb13029 336 >= 0 && x2 <= 255){
apspijkerman 0:6a0d5fb13029 337 //buf.append("!lb"); // fast binary method
apspijkerman 0:6a0d5fb13029 338 //buf.append((char) 4 ); // write 4 bytes
apspijkerman 0:6a0d5fb13029 339 //buf.append((char) x1 );
apspijkerman 0:6a0d5fb13029 340 //buf.append((char) y1 );
apspijkerman 0:6a0d5fb13029 341 //buf.append((char) x2 );
apspijkerman 0:6a0d5fb13029 342 //buf.append((char) y2 );
apspijkerman 0:6a0d5fb13029 343
apspijkerman 0:6a0d5fb13029 344 serial.printf("!lb%c%c%c%c%c;", 4, x1, y1, x2, y2 );
apspijkerman 0:6a0d5fb13029 345 }else{
apspijkerman 0:6a0d5fb13029 346 //buf.append("!l"); // slow method .. so values > 255
apspijkerman 0:6a0d5fb13029 347 //buf.append( x1 );
apspijkerman 0:6a0d5fb13029 348 //buf.append("," );
apspijkerman 0:6a0d5fb13029 349 //buf.append( y1 );
apspijkerman 0:6a0d5fb13029 350 //buf.append("," );
apspijkerman 0:6a0d5fb13029 351 //buf.append( x2 );
apspijkerman 0:6a0d5fb13029 352 //buf.append("," );
apspijkerman 0:6a0d5fb13029 353 //buf.append( y2 );
apspijkerman 0:6a0d5fb13029 354
apspijkerman 0:6a0d5fb13029 355 serial.printf("!l%d,%d,%d,%d;", x1, y1, x2, y2);
apspijkerman 0:6a0d5fb13029 356 }
apspijkerman 0:6a0d5fb13029 357 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 358 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 359
apspijkerman 0:6a0d5fb13029 360 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 361 }
apspijkerman 0:6a0d5fb13029 362
apspijkerman 0:6a0d5fb13029 363 static void Plot(int x, int y)
apspijkerman 0:6a0d5fb13029 364 {
apspijkerman 0:6a0d5fb13029 365 //StringBuffer buf=new StringBuffer(16);
apspijkerman 0:6a0d5fb13029 366
apspijkerman 0:6a0d5fb13029 367 //if (x < 0) x = 0;
apspijkerman 0:6a0d5fb13029 368 //if (y < 0) y = 0;
apspijkerman 0:6a0d5fb13029 369
apspijkerman 0:6a0d5fb13029 370 //buf.clear();
apspijkerman 0:6a0d5fb13029 371 if (x >= 0 && x <= 255 && y >= 0 && y <= 255){
apspijkerman 0:6a0d5fb13029 372 //buf.append("!pb"); // fast method .. so values <= 255
apspijkerman 0:6a0d5fb13029 373 //buf.append((char) 2 ); // write 2 bytes
apspijkerman 0:6a0d5fb13029 374 //buf.append((char) x );
apspijkerman 0:6a0d5fb13029 375 //buf.append((char) y );
apspijkerman 0:6a0d5fb13029 376
apspijkerman 0:6a0d5fb13029 377 serial.printf("!pb%c%c%c;", 2, x, y);
apspijkerman 0:6a0d5fb13029 378 }else{
apspijkerman 0:6a0d5fb13029 379 //buf.append("!p"); // slow method .. so values > 255
apspijkerman 0:6a0d5fb13029 380 //buf.append( x );
apspijkerman 0:6a0d5fb13029 381 //buf.append("," );
apspijkerman 0:6a0d5fb13029 382 //buf.append( y );
apspijkerman 0:6a0d5fb13029 383
apspijkerman 0:6a0d5fb13029 384 serial.printf("!p%d,%d;", x, y);
apspijkerman 0:6a0d5fb13029 385 }
apspijkerman 0:6a0d5fb13029 386 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 387 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 388
apspijkerman 0:6a0d5fb13029 389 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 390 }
apspijkerman 0:6a0d5fb13029 391
apspijkerman 0:6a0d5fb13029 392
apspijkerman 0:6a0d5fb13029 393 static void DrawGrid(int a, int b, int c, int d, int e, int f)
apspijkerman 0:6a0d5fb13029 394 {
apspijkerman 0:6a0d5fb13029 395 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:6a0d5fb13029 396
apspijkerman 0:6a0d5fb13029 397 //buf.clear();
apspijkerman 0:6a0d5fb13029 398 //buf.append("!ab"); // fast binary method
apspijkerman 0:6a0d5fb13029 399 //buf.append((char) 6 ); // write 6 bytes
apspijkerman 0:6a0d5fb13029 400 //buf.append((char) a ); // xspace
apspijkerman 0:6a0d5fb13029 401 //buf.append((char) b ); // yspace
apspijkerman 0:6a0d5fb13029 402 //buf.append((char) c ); // xlines
apspijkerman 0:6a0d5fb13029 403 //buf.append((char) d ); // ylines
apspijkerman 0:6a0d5fb13029 404 //buf.append((char) e ); // xoffset
apspijkerman 0:6a0d5fb13029 405 //buf.append((char) f ); // yoffset
apspijkerman 0:6a0d5fb13029 406 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 407 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 408
apspijkerman 0:6a0d5fb13029 409 serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:6a0d5fb13029 410
apspijkerman 0:6a0d5fb13029 411 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 412 }
apspijkerman 0:6a0d5fb13029 413
apspijkerman 0:6a0d5fb13029 414 static void ClearScreen()
apspijkerman 0:6a0d5fb13029 415 {
apspijkerman 0:6a0d5fb13029 416 serial.printf("!c;");
apspijkerman 0:6a0d5fb13029 417 }
apspijkerman 0:6a0d5fb13029 418
apspijkerman 0:6a0d5fb13029 419 // shortcut: Cmd("!c;"); or Cmd("?O;");
apspijkerman 0:6a0d5fb13029 420
apspijkerman 0:6a0d5fb13029 421 static void Cmd(char *p)
apspijkerman 0:6a0d5fb13029 422 {
apspijkerman 0:6a0d5fb13029 423 serial.printf(p);
apspijkerman 0:6a0d5fb13029 424 }
apspijkerman 0:6a0d5fb13029 425
apspijkerman 0:6a0d5fb13029 426 // for "!nSpeech;" or "!Llog file;"
apspijkerman 0:6a0d5fb13029 427
apspijkerman 0:6a0d5fb13029 428 static void CmdStr(char cmd, char *p )
apspijkerman 0:6a0d5fb13029 429 {
apspijkerman 0:6a0d5fb13029 430 //buf.clear();
apspijkerman 0:6a0d5fb13029 431 //buf.append("!");
apspijkerman 0:6a0d5fb13029 432 //buf.append( cmd );
apspijkerman 0:6a0d5fb13029 433 //buf.append( p );
apspijkerman 0:6a0d5fb13029 434 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 435 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 436
apspijkerman 0:6a0d5fb13029 437 serial.printf("!%c%s;", cmd, p);
apspijkerman 0:6a0d5fb13029 438 }
apspijkerman 0:6a0d5fb13029 439
apspijkerman 0:6a0d5fb13029 440 // cmd with no argument so Cmd0('s'); = "!s;"
apspijkerman 0:6a0d5fb13029 441
apspijkerman 0:6a0d5fb13029 442 static void Cmd0(char cmd )
apspijkerman 0:6a0d5fb13029 443 {
apspijkerman 0:6a0d5fb13029 444 //buf.clear();
apspijkerman 0:6a0d5fb13029 445 //buf.append("!");
apspijkerman 0:6a0d5fb13029 446 //buf.append( cmd );
apspijkerman 0:6a0d5fb13029 447 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 448 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 449
apspijkerman 0:6a0d5fb13029 450 serial.printf("!%c;", cmd);
apspijkerman 0:6a0d5fb13029 451 }
apspijkerman 0:6a0d5fb13029 452
apspijkerman 0:6a0d5fb13029 453 // request with no arguments
apspijkerman 0:6a0d5fb13029 454 // Req0( 'm' ); = "?m;"
apspijkerman 0:6a0d5fb13029 455
apspijkerman 0:6a0d5fb13029 456 static void Req0(char req )
apspijkerman 0:6a0d5fb13029 457 {
apspijkerman 0:6a0d5fb13029 458 //buf.clear();
apspijkerman 0:6a0d5fb13029 459 //buf.append("?");
apspijkerman 0:6a0d5fb13029 460 //buf.append( req );
apspijkerman 0:6a0d5fb13029 461 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 462 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 463
apspijkerman 0:6a0d5fb13029 464 serial.printf("?%c;", req );
apspijkerman 0:6a0d5fb13029 465 }
apspijkerman 0:6a0d5fb13029 466
apspijkerman 0:6a0d5fb13029 467 // cmd with 1 arg Cmd1('a' , 1 ); = "!a1;"
apspijkerman 0:6a0d5fb13029 468
apspijkerman 0:6a0d5fb13029 469 static void Cmd1(char cmd, int arg1 )
apspijkerman 0:6a0d5fb13029 470 {
apspijkerman 0:6a0d5fb13029 471 //buf.clear();
apspijkerman 0:6a0d5fb13029 472 //buf.append("!");
apspijkerman 0:6a0d5fb13029 473 //buf.append( cmd );
apspijkerman 0:6a0d5fb13029 474 if (arg1 < 256){
apspijkerman 0:6a0d5fb13029 475 //buf.append( 'b' ); // binary mode
apspijkerman 0:6a0d5fb13029 476 //buf.append((char) 1 ); // 1 argument
apspijkerman 0:6a0d5fb13029 477 //buf.append((char) arg1 );
apspijkerman 0:6a0d5fb13029 478
apspijkerman 0:6a0d5fb13029 479 serial.printf("!%cb%c%c;", cmd, 1, arg1 );
apspijkerman 0:6a0d5fb13029 480 }else{
apspijkerman 0:6a0d5fb13029 481 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:6a0d5fb13029 482
apspijkerman 0:6a0d5fb13029 483 serial.printf("!%c%d;", cmd, arg1 );
apspijkerman 0:6a0d5fb13029 484 }
apspijkerman 0:6a0d5fb13029 485 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 486 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 487 }
apspijkerman 0:6a0d5fb13029 488
apspijkerman 0:6a0d5fb13029 489 // cmd with 2 args Cmd2('G', 20, 1); = "!G20,1;"
apspijkerman 0:6a0d5fb13029 490 // plot = Cmd2( 'p', x, y );
apspijkerman 0:6a0d5fb13029 491
apspijkerman 0:6a0d5fb13029 492 static void Cmd2(char cmd, int arg1, int arg2 )
apspijkerman 0:6a0d5fb13029 493 {
apspijkerman 0:6a0d5fb13029 494 //buf.clear();
apspijkerman 0:6a0d5fb13029 495 //buf.append("!" ); // !
apspijkerman 0:6a0d5fb13029 496 //buf.append( cmd );
apspijkerman 0:6a0d5fb13029 497 if (arg1 < 255 && arg2 < 255){
apspijkerman 0:6a0d5fb13029 498 //buf.append( 'b' ); // binary mode
apspijkerman 0:6a0d5fb13029 499 //buf.append((char) 2 ); // 2 arguments
apspijkerman 0:6a0d5fb13029 500 //buf.append((char) arg1 );
apspijkerman 0:6a0d5fb13029 501 //buf.append((char) arg2 );
apspijkerman 0:6a0d5fb13029 502
apspijkerman 0:6a0d5fb13029 503 serial.printf("!%cb%c%c%c;", cmd, 2, arg1, arg2 );
apspijkerman 0:6a0d5fb13029 504 }else{
apspijkerman 0:6a0d5fb13029 505 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:6a0d5fb13029 506 //buf.append("," );
apspijkerman 0:6a0d5fb13029 507 //buf.append( arg2 );
apspijkerman 0:6a0d5fb13029 508
apspijkerman 0:6a0d5fb13029 509 serial.printf("!%c%d,%d;", cmd, arg1, arg2 );
apspijkerman 0:6a0d5fb13029 510 }
apspijkerman 0:6a0d5fb13029 511 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 512 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 513 }
apspijkerman 0:6a0d5fb13029 514
apspijkerman 0:6a0d5fb13029 515 // cmd with 3 args
apspijkerman 0:6a0d5fb13029 516 // setcolor = Cmd3( 's', r, g, b );
apspijkerman 0:6a0d5fb13029 517
apspijkerman 0:6a0d5fb13029 518 static void Cmd3(char cmd, int arg1, int arg2, int arg3 )
apspijkerman 0:6a0d5fb13029 519 {
apspijkerman 0:6a0d5fb13029 520 //buf.clear();
apspijkerman 0:6a0d5fb13029 521 //buf.append("!" ); // !
apspijkerman 0:6a0d5fb13029 522 //buf.append( cmd );
apspijkerman 0:6a0d5fb13029 523 if (arg1 < 255 && arg2 < 255 && arg3 < 255){
apspijkerman 0:6a0d5fb13029 524 //buf.append( 'b' ); // binary mode
apspijkerman 0:6a0d5fb13029 525 //buf.append((char) 3 ); // 3 arguments
apspijkerman 0:6a0d5fb13029 526 //buf.append((char) arg1 );
apspijkerman 0:6a0d5fb13029 527 //buf.append((char) arg2 );
apspijkerman 0:6a0d5fb13029 528 //buf.append((char) arg3 );
apspijkerman 0:6a0d5fb13029 529
apspijkerman 0:6a0d5fb13029 530 serial.printf("!%cb%c%c%c%c;", cmd, 3, arg1, arg2, arg3 );
apspijkerman 0:6a0d5fb13029 531 }else{
apspijkerman 0:6a0d5fb13029 532 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:6a0d5fb13029 533 //buf.append("," );
apspijkerman 0:6a0d5fb13029 534 //buf.append( arg2 );
apspijkerman 0:6a0d5fb13029 535 //buf.append("," );
apspijkerman 0:6a0d5fb13029 536 //buf.append( arg3 );
apspijkerman 0:6a0d5fb13029 537
apspijkerman 0:6a0d5fb13029 538 serial.printf("!%c%d,%d,%d;", cmd, arg1, arg2, arg3 );
apspijkerman 0:6a0d5fb13029 539 }
apspijkerman 0:6a0d5fb13029 540 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 541 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 542 }
apspijkerman 0:6a0d5fb13029 543
apspijkerman 0:6a0d5fb13029 544 // cmd with 4 args
apspijkerman 0:6a0d5fb13029 545 // line = Cmd4( 'l', x1, y1, x2, y2);
apspijkerman 0:6a0d5fb13029 546
apspijkerman 0:6a0d5fb13029 547 static void Cmd4(char cmd, int arg1, int arg2, int arg3, int arg4 )
apspijkerman 0:6a0d5fb13029 548 {
apspijkerman 0:6a0d5fb13029 549 //buf.clear();
apspijkerman 0:6a0d5fb13029 550 //buf.append("!" ); // !
apspijkerman 0:6a0d5fb13029 551 //buf.append( cmd );
apspijkerman 0:6a0d5fb13029 552 if (arg1 < 255 && arg2 < 255 && arg3 < 255 && arg4 < 255){
apspijkerman 0:6a0d5fb13029 553 //buf.append( 'b' ); // binary mode
apspijkerman 0:6a0d5fb13029 554 //buf.append((char) 4 ); // 4 arguments
apspijkerman 0:6a0d5fb13029 555 //buf.append((char) arg1 );
apspijkerman 0:6a0d5fb13029 556 //buf.append((char) arg2 );
apspijkerman 0:6a0d5fb13029 557 //buf.append((char) arg3 );
apspijkerman 0:6a0d5fb13029 558 //buf.append((char) arg4 );
apspijkerman 0:6a0d5fb13029 559
apspijkerman 0:6a0d5fb13029 560 serial.printf("!%cb%c%c%c%c%c;", cmd, 4, arg1, arg2, arg3, arg4 );
apspijkerman 0:6a0d5fb13029 561 }else{
apspijkerman 0:6a0d5fb13029 562 //buf.append( arg1 ); // slow ascii mode
apspijkerman 0:6a0d5fb13029 563 //buf.append("," );
apspijkerman 0:6a0d5fb13029 564 //buf.append( arg2 );
apspijkerman 0:6a0d5fb13029 565 //buf.append("," );
apspijkerman 0:6a0d5fb13029 566 //buf.append( arg3 );
apspijkerman 0:6a0d5fb13029 567 //buf.append("," );
apspijkerman 0:6a0d5fb13029 568 //buf.append( arg4 );
apspijkerman 0:6a0d5fb13029 569
apspijkerman 0:6a0d5fb13029 570 serial.printf("!%c%d,%d,%d,%d;", cmd, arg1, arg2, arg3, arg4 );
apspijkerman 0:6a0d5fb13029 571 }
apspijkerman 0:6a0d5fb13029 572 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 573 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 574 }
apspijkerman 0:6a0d5fb13029 575
apspijkerman 0:6a0d5fb13029 576 // play video, mp3 or picture
apspijkerman 0:6a0d5fb13029 577
apspijkerman 0:6a0d5fb13029 578 static void Media(char *p)
apspijkerman 0:6a0d5fb13029 579 {
apspijkerman 0:6a0d5fb13029 580 //buf.clear();
apspijkerman 0:6a0d5fb13029 581 //buf.append("!V");
apspijkerman 0:6a0d5fb13029 582 //buf.append( p );
apspijkerman 0:6a0d5fb13029 583 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 584 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 585
apspijkerman 0:6a0d5fb13029 586 serial.printf("!V%s;", p);
apspijkerman 0:6a0d5fb13029 587 }
apspijkerman 0:6a0d5fb13029 588
apspijkerman 0:6a0d5fb13029 589 static void Speech(char *p)
apspijkerman 0:6a0d5fb13029 590 {
apspijkerman 0:6a0d5fb13029 591 //buf.clear();
apspijkerman 0:6a0d5fb13029 592 //buf.append("!n");
apspijkerman 0:6a0d5fb13029 593 //buf.append( p );
apspijkerman 0:6a0d5fb13029 594 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 595 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 596
apspijkerman 0:6a0d5fb13029 597 serial.printf("!n%s;", p);
apspijkerman 0:6a0d5fb13029 598 }
apspijkerman 0:6a0d5fb13029 599
apspijkerman 0:6a0d5fb13029 600 static void Log(char *p)
apspijkerman 0:6a0d5fb13029 601 {
apspijkerman 0:6a0d5fb13029 602 //buf.clear();
apspijkerman 0:6a0d5fb13029 603 //buf.append("!L");
apspijkerman 0:6a0d5fb13029 604 //buf.append( p );
apspijkerman 0:6a0d5fb13029 605 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 606 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 607
apspijkerman 0:6a0d5fb13029 608 serial.printf("!L%s;", p);
apspijkerman 0:6a0d5fb13029 609 }
apspijkerman 0:6a0d5fb13029 610
apspijkerman 0:6a0d5fb13029 611 static void ScrollLeft()
apspijkerman 0:6a0d5fb13029 612 {
apspijkerman 0:6a0d5fb13029 613 serial.printf("!G20,1;");
apspijkerman 0:6a0d5fb13029 614 }
apspijkerman 0:6a0d5fb13029 615
apspijkerman 0:6a0d5fb13029 616 /*
apspijkerman 0:6a0d5fb13029 617 static void DrawGrid(int a, int b, int c, int d, int e, int f)
apspijkerman 0:6a0d5fb13029 618 {
apspijkerman 0:6a0d5fb13029 619 //StringBuffer buf=new StringBuffer(36);
apspijkerman 0:6a0d5fb13029 620
apspijkerman 0:6a0d5fb13029 621 //buf.clear();
apspijkerman 0:6a0d5fb13029 622 //buf.append("!ab"); // fast binary method
apspijkerman 0:6a0d5fb13029 623 //buf.append((char) 6 ); // write 6 bytes
apspijkerman 0:6a0d5fb13029 624 //buf.append((char) a ); // xspace
apspijkerman 0:6a0d5fb13029 625 //buf.append((char) b ); // yspace
apspijkerman 0:6a0d5fb13029 626 //buf.append((char) c ); // xlines
apspijkerman 0:6a0d5fb13029 627 //buf.append((char) d ); // ylines
apspijkerman 0:6a0d5fb13029 628 //buf.append((char) e ); // xoffset
apspijkerman 0:6a0d5fb13029 629 //buf.append((char) f ); // yoffset
apspijkerman 0:6a0d5fb13029 630 //buf.append(";" );
apspijkerman 0:6a0d5fb13029 631
apspijkerman 0:6a0d5fb13029 632 //System.out.print(buf.toString());
apspijkerman 0:6a0d5fb13029 633
apspijkerman 0:6a0d5fb13029 634 serial.printf("!ab%c%c%c%c%c%c%c;", 6, a, b, c, d, e, f );
apspijkerman 0:6a0d5fb13029 635
apspijkerman 0:6a0d5fb13029 636 //CPU.delay(1); // ??
apspijkerman 0:6a0d5fb13029 637 }
apspijkerman 0:6a0d5fb13029 638 */
apspijkerman 0:6a0d5fb13029 639
apspijkerman 0:6a0d5fb13029 640 /*
apspijkerman 0:6a0d5fb13029 641 static void initpins() {
apspijkerman 0:6a0d5fb13029 642 // OUTPUT dischargecap 'capacitor reset p 15
apspijkerman 0:6a0d5fb13029 643 // LOW dischargecap 'disable p 15
apspijkerman 0:6a0d5fb13029 644
apspijkerman 0:6a0d5fb13029 645 // OUTPUT chargecap 'capacitor charge p 14
apspijkerman 0:6a0d5fb13029 646 // HIGH chargecap 'disable p 14
apspijkerman 0:6a0d5fb13029 647
apspijkerman 0:6a0d5fb13029 648 // INPUT chanblow 'channel b p 12
apspijkerman 0:6a0d5fb13029 649 // INPUT chanalow 'channel a p 13
apspijkerman 0:6a0d5fb13029 650 // INPUT chanbhigh 'channel b high p 10
apspijkerman 0:6a0d5fb13029 651 // INPUT chanahigh 'channel a high p 11
apspijkerman 0:6a0d5fb13029 652
apspijkerman 0:6a0d5fb13029 653 CPU.setInput (CPU.pins[10]); // chan b high opamp
apspijkerman 0:6a0d5fb13029 654 CPU.setInput (CPU.pins[11]); // chan a high opamp
apspijkerman 0:6a0d5fb13029 655 CPU.setInput (CPU.pins[12]); // chan b low opamp
apspijkerman 0:6a0d5fb13029 656 CPU.setInput (CPU.pins[13]); // chan a low opamp
apspijkerman 0:6a0d5fb13029 657
apspijkerman 0:6a0d5fb13029 658 CPU.setOutput(CPU.pins[14]); // charge cap pin
apspijkerman 0:6a0d5fb13029 659 CPU.setOutput(CPU.pins[15]); // discarge cap pin
apspijkerman 0:6a0d5fb13029 660
apspijkerman 0:6a0d5fb13029 661 CPU.writePin (CPU.pins[15] , false );
apspijkerman 0:6a0d5fb13029 662 CPU.writePin (CPU.pins[14] , true );
apspijkerman 0:6a0d5fb13029 663 }
apspijkerman 0:6a0d5fb13029 664
apspijkerman 0:6a0d5fb13029 665
apspijkerman 0:6a0d5fb13029 666 // interface with ltc1298 chip
apspijkerman 0:6a0d5fb13029 667
apspijkerman 0:6a0d5fb13029 668 // static int gEnablePin; // speedup ?
apspijkerman 0:6a0d5fb13029 669 // static int gClockPin;
apspijkerman 0:6a0d5fb13029 670 // static int gDataPin;
apspijkerman 0:6a0d5fb13029 671
apspijkerman 0:6a0d5fb13029 672 static void initadc(int dataPin, int clockPin, int enablePin){
apspijkerman 0:6a0d5fb13029 673
apspijkerman 0:6a0d5fb13029 674 //gEnablePin = CPU.pins[enablePin]; // speedup ?
apspijkerman 0:6a0d5fb13029 675 //gClockPin = CPU.pins[clockPin];
apspijkerman 0:6a0d5fb13029 676 //gDataPin = CPU.pins[dataPin];
apspijkerman 0:6a0d5fb13029 677
apspijkerman 0:6a0d5fb13029 678 CPU.writePin(CPU.pins[enablePin],false); // init the bus
apspijkerman 0:6a0d5fb13029 679 CPU.writePin(CPU.pins[clockPin ],false);
apspijkerman 0:6a0d5fb13029 680 CPU.delay(100); // settle down
apspijkerman 0:6a0d5fb13029 681 CPU.writePin(CPU.pins[enablePin],false);
apspijkerman 0:6a0d5fb13029 682 CPU.writePin(CPU.pins[enablePin],true );
apspijkerman 0:6a0d5fb13029 683
apspijkerman 0:6a0d5fb13029 684 //CPU.writePin(CPU.pins[dataPin ],false ); // test
apspijkerman 0:6a0d5fb13029 685 //Serial.print(CPU.pins[ 1 ]); // just adds one ?
apspijkerman 0:6a0d5fb13029 686 }
apspijkerman 0:6a0d5fb13029 687
apspijkerman 0:6a0d5fb13029 688 static int readadc(int dataPin, int clockPin, int enablePin, int channel, int
apspijkerman 0:6a0d5fb13029 689
apspijkerman 0:6a0d5fb13029 690 mode){
apspijkerman 0:6a0d5fb13029 691
apspijkerman 0:6a0d5fb13029 692 int command, readSize;
apspijkerman 0:6a0d5fb13029 693 int clockIn;
apspijkerman 0:6a0d5fb13029 694
apspijkerman 0:6a0d5fb13029 695 if (channel == 0) command = 0x1a; // %11010 read ch0 (pin2)
apspijkerman 0:6a0d5fb13029 696 else command = 0x1e; // %11110 read ch1 (pin3)
apspijkerman 0:6a0d5fb13029 697
apspijkerman 0:6a0d5fb13029 698 readSize = 12; // Bytes to Read on the LTC1298
apspijkerman 0:6a0d5fb13029 699 //resolution = 4096; // Range of the LTC1298
apspijkerman 0:6a0d5fb13029 700 //clockIn = 1000;
apspijkerman 0:6a0d5fb13029 701
apspijkerman 0:6a0d5fb13029 702 CPU.writePin(CPU.pins[enablePin],false);
apspijkerman 0:6a0d5fb13029 703 // set port
apspijkerman 0:6a0d5fb13029 704 CPU.shiftOut(CPU.pins[dataPin],CPU.pins[clockPin],5,CPU.SHIFT_MSB,(command <<
apspijkerman 0:6a0d5fb13029 705
apspijkerman 0:6a0d5fb13029 706 11));
apspijkerman 0:6a0d5fb13029 707 // read the value
apspijkerman 0:6a0d5fb13029 708 clockIn =
apspijkerman 0:6a0d5fb13029 709
apspijkerman 0:6a0d5fb13029 710 CPU.shiftIn(CPU.pins[dataPin],CPU.pins[clockPin],readSize,CPU.PRE_CLOCK_MSB);
apspijkerman 0:6a0d5fb13029 711 CPU.writePin(CPU.pins[enablePin],true);
apspijkerman 0:6a0d5fb13029 712
apspijkerman 0:6a0d5fb13029 713 //CPU.delay(100);
apspijkerman 0:6a0d5fb13029 714 //CPU.writePin(CPU.pins[dataPin],false ); // test
apspijkerman 0:6a0d5fb13029 715 //CPU.setInput(dataPin);
apspijkerman 0:6a0d5fb13029 716
apspijkerman 0:6a0d5fb13029 717
apspijkerman 0:6a0d5fb13029 718 if (mode == 0){ // low
apspijkerman 0:6a0d5fb13029 719 clockIn = clockIn - (2048-128);
apspijkerman 0:6a0d5fb13029 720 }else{
apspijkerman 0:6a0d5fb13029 721 if (mode == 1){ // high
apspijkerman 0:6a0d5fb13029 722 //clockIn = clockIn / 16; // make 8 bits from 12
apspijkerman 0:6a0d5fb13029 723 clockIn = clockIn >> 4; // make 8 bits from 12
apspijkerman 0:6a0d5fb13029 724 }else{ // gnd
apspijkerman 0:6a0d5fb13029 725 clockIn = 128;
apspijkerman 0:6a0d5fb13029 726 }
apspijkerman 0:6a0d5fb13029 727 }
apspijkerman 0:6a0d5fb13029 728
apspijkerman 0:6a0d5fb13029 729 // Serial.print("v:");
apspijkerman 0:6a0d5fb13029 730 // Serial.print(channel);
apspijkerman 0:6a0d5fb13029 731 // Serial.print(",");
apspijkerman 0:6a0d5fb13029 732 // Serial.print(clockIn);
apspijkerman 0:6a0d5fb13029 733 // Serial.println("");
apspijkerman 0:6a0d5fb13029 734
apspijkerman 0:6a0d5fb13029 735 return clockIn;
apspijkerman 0:6a0d5fb13029 736 }
apspijkerman 0:6a0d5fb13029 737 */
apspijkerman 0:6a0d5fb13029 738
apspijkerman 0:6a0d5fb13029 739
apspijkerman 0:6a0d5fb13029 740 /*
apspijkerman 0:6a0d5fb13029 741 static int measure(int channel, int mode) {
apspijkerman 0:6a0d5fb13029 742 int e, time;
apspijkerman 0:6a0d5fb13029 743
apspijkerman 0:6a0d5fb13029 744 if (channel == 0){ // chan a
apspijkerman 0:6a0d5fb13029 745 if (mode == 0){
apspijkerman 0:6a0d5fb13029 746 e = 13; // a low
apspijkerman 0:6a0d5fb13029 747 }else{
apspijkerman 0:6a0d5fb13029 748 if (mode == 1){
apspijkerman 0:6a0d5fb13029 749 e = 11; // a high
apspijkerman 0:6a0d5fb13029 750 }else{
apspijkerman 0:6a0d5fb13029 751 return 128; // gnd
apspijkerman 0:6a0d5fb13029 752 }
apspijkerman 0:6a0d5fb13029 753 }
apspijkerman 0:6a0d5fb13029 754 }else{ // chan b
apspijkerman 0:6a0d5fb13029 755 if (mode == 0){
apspijkerman 0:6a0d5fb13029 756 e = 12; // b low
apspijkerman 0:6a0d5fb13029 757 }else{
apspijkerman 0:6a0d5fb13029 758 if (mode == 1){
apspijkerman 0:6a0d5fb13029 759 e = 10; // b high
apspijkerman 0:6a0d5fb13029 760 }else{
apspijkerman 0:6a0d5fb13029 761 return 128; // gnd
apspijkerman 0:6a0d5fb13029 762 }
apspijkerman 0:6a0d5fb13029 763 }
apspijkerman 0:6a0d5fb13029 764 }
apspijkerman 0:6a0d5fb13029 765
apspijkerman 0:6a0d5fb13029 766 // PULSOUT dischargecap, 10 '2uS units -> 20uS
apspijkerman 0:6a0d5fb13029 767
apspijkerman 0:6a0d5fb13029 768 //CPU.writePin(CPU.pins[15] , 1 ); // discharge cap
apspijkerman 0:6a0d5fb13029 769 //CPU.delay( 1 );
apspijkerman 0:6a0d5fb13029 770 //CPU.writePin(CPU.pins[15] , 0 );
apspijkerman 0:6a0d5fb13029 771 CPU.pulseOut(2, CPU.pins[15] ); // 2 x 8.7 = 17 uS
apspijkerman 0:6a0d5fb13029 772
apspijkerman 0:6a0d5fb13029 773 // LOW chargecap 'start charge
apspijkerman 0:6a0d5fb13029 774 // RCTIME chanahigh, 0 , val 'PULSIN
apspijkerman 0:6a0d5fb13029 775 // HIGH chargecap 'stop charge
apspijkerman 0:6a0d5fb13029 776
apspijkerman 0:6a0d5fb13029 777 CPU.writePin(CPU.pins[14] , false );
apspijkerman 0:6a0d5fb13029 778 time = CPU.rcTime( 1000 ,CPU.pins[ e ], true ); // 8.68 uS units (0-200uS)
apspijkerman 0:6a0d5fb13029 779 CPU.writePin(CPU.pins[14] , true );
apspijkerman 0:6a0d5fb13029 780
apspijkerman 0:6a0d5fb13029 781 //CPU.readPin( CPU.pins[e]); // switch back to input
apspijkerman 0:6a0d5fb13029 782 time = time << 3; // resolution 8 times lower as basic stamp
apspijkerman 0:6a0d5fb13029 783
apspijkerman 0:6a0d5fb13029 784 return time;
apspijkerman 0:6a0d5fb13029 785 }
apspijkerman 0:6a0d5fb13029 786 */
apspijkerman 0:6a0d5fb13029 787
apspijkerman 0:6a0d5fb13029 788
apspijkerman 0:6a0d5fb13029 789
apspijkerman 0:6a0d5fb13029 790 /*
apspijkerman 0:6a0d5fb13029 791 val = readadc(2,1,0, 0, ChanAMode );
apspijkerman 0:6a0d5fb13029 792 val = readadc(2,1,0, 1, ChanBMode ); ;
apspijkerman 0:6a0d5fb13029 793 */
apspijkerman 0:6a0d5fb13029 794 // mode0 = low , mode1 = high
apspijkerman 0:6a0d5fb13029 795
apspijkerman 0:6a0d5fb13029 796 int readadc(int p1, int p2, int p3, int chan, int mode)
apspijkerman 0:6a0d5fb13029 797 {
apspijkerman 0:6a0d5fb13029 798 int ret;
apspijkerman 0:6a0d5fb13029 799
apspijkerman 0:6a0d5fb13029 800 if (mode == 0){
apspijkerman 0:6a0d5fb13029 801 if (chan == 0) ret = xa * 4096;
apspijkerman 0:6a0d5fb13029 802 if (chan == 1) ret = ya * 4096;
apspijkerman 0:6a0d5fb13029 803 }
apspijkerman 0:6a0d5fb13029 804 if (mode == 1){
apspijkerman 0:6a0d5fb13029 805 if (chan == 0) ret = xa * 256;
apspijkerman 0:6a0d5fb13029 806 if (chan == 1) ret = ya * 256;
apspijkerman 0:6a0d5fb13029 807 }
apspijkerman 0:6a0d5fb13029 808
apspijkerman 0:6a0d5fb13029 809 return ret;
apspijkerman 0:6a0d5fb13029 810 }
apspijkerman 0:6a0d5fb13029 811
apspijkerman 0:6a0d5fb13029 812 int measure( int chan, int mode)
apspijkerman 0:6a0d5fb13029 813 {
apspijkerman 0:6a0d5fb13029 814 int ret;
apspijkerman 0:6a0d5fb13029 815
apspijkerman 0:6a0d5fb13029 816 if (mode == 0){
apspijkerman 0:6a0d5fb13029 817 if (chan == 0) ret = xa * 4096;
apspijkerman 0:6a0d5fb13029 818 if (chan == 1) ret = ya * 4096;
apspijkerman 0:6a0d5fb13029 819 }
apspijkerman 0:6a0d5fb13029 820 if (mode == 1){
apspijkerman 0:6a0d5fb13029 821 if (chan == 0) ret = xa * 256;
apspijkerman 0:6a0d5fb13029 822 if (chan == 1) ret = ya * 256;
apspijkerman 0:6a0d5fb13029 823 }
apspijkerman 0:6a0d5fb13029 824
apspijkerman 0:6a0d5fb13029 825 return ret;
apspijkerman 0:6a0d5fb13029 826 }
apspijkerman 0:6a0d5fb13029 827 #define boolean int
apspijkerman 0:6a0d5fb13029 828
apspijkerman 0:6a0d5fb13029 829 // ChanXMode '0=off, 1=low, 2=high, 3=gnd ?
apspijkerman 0:6a0d5fb13029 830 // Mode '0=scope, 1=XY, 2=record (3=off ?)
apspijkerman 0:6a0d5fb13029 831
apspijkerman 0:6a0d5fb13029 832
apspijkerman 0:6a0d5fb13029 833
apspijkerman 0:6a0d5fb13029 834
apspijkerman 0:6a0d5fb13029 835
apspijkerman 0:6a0d5fb13029 836 int main() {
apspijkerman 0:6a0d5fb13029 837 boolean UseChanA = true, UseChanB = true; // Bit
apspijkerman 0:6a0d5fb13029 838 boolean ready, grid = true, adc = false; // Bit
apspijkerman 0:6a0d5fb13029 839 int ChanAMode = 0, ChanBMode = 0, mode = 0; // Nib
apspijkerman 0:6a0d5fb13029 840 int PosA = 128, PosB = 128;
apspijkerman 0:6a0d5fb13029 841
apspijkerman 0:6a0d5fb13029 842 int val, valb, ecnt = 0; // Word
apspijkerman 0:6a0d5fb13029 843 int pval = 0, pvalb = 0; // Bytes
apspijkerman 0:6a0d5fb13029 844 int x, s, cnt = 0, ptr, speed = 0; // Byte
apspijkerman 0:6a0d5fb13029 845
apspijkerman 0:6a0d5fb13029 846 boolean trigMode = true, trigEdge = false, trigSrc = false; // Bit
apspijkerman 0:6a0d5fb13029 847 int trigLevel = 127; // Byte (128 results in 127 !)
apspijkerman 0:6a0d5fb13029 848 int mem[100]; // [] mem;
apspijkerman 0:6a0d5fb13029 849
apspijkerman 0:6a0d5fb13029 850 //StringBuffer serbuf = new StringBuffer(80);
apspijkerman 0:6a0d5fb13029 851
apspijkerman 0:6a0d5fb13029 852 //mem = new int [100];
apspijkerman 0:6a0d5fb13029 853
apspijkerman 0:6a0d5fb13029 854 InitStampdock();
apspijkerman 0:6a0d5fb13029 855
apspijkerman 0:6a0d5fb13029 856
apspijkerman 0:6a0d5fb13029 857 //initpins();
apspijkerman 0:6a0d5fb13029 858 //initadc(2,1,0);
apspijkerman 0:6a0d5fb13029 859
apspijkerman 0:6a0d5fb13029 860 //for (s = 0; s < 100; s++) System.out.print((char) 127 );
apspijkerman 0:6a0d5fb13029 861 //System.out.print((char) 127 );
apspijkerman 0:6a0d5fb13029 862 //System.out.print("scope running .. ");
apspijkerman 0:6a0d5fb13029 863 serial.printf("scope running .. ");
apspijkerman 0:6a0d5fb13029 864
apspijkerman 0:6a0d5fb13029 865 // reset value of gui buttons if reset
apspijkerman 0:6a0d5fb13029 866 SetValue(1, mode); // System.out.print("!i1,0;"); // mode, 0 is xt scope
apspijkerman 0:6a0d5fb13029 867
apspijkerman 0:6a0d5fb13029 868 SetValue(102,0); // System.out.print("!i102,1;"); // on/off switch on
apspijkerman 0:6a0d5fb13029 869 if (grid) SetValue(103,1); else SetValue(103,0); // System.out.print("!i103,1;"); // grid switch on
apspijkerman 0:6a0d5fb13029 870 if (adc) SetValue(104,1); else SetValue(104,0); // System.out.print("!i104,0;"); // ltc1298 off
apspijkerman 0:6a0d5fb13029 871
apspijkerman 0:6a0d5fb13029 872 SetValue(30, speed); // System.out.print("!i30,0;"); // speed switch 0
apspijkerman 0:6a0d5fb13029 873 SetValue(40, trigLevel); // System.out.print("!i40,128;"); // trigger level 128
apspijkerman 0:6a0d5fb13029 874 if (trigMode) SetValue(41,1); else SetValue(41,0); // System.out.print("!i41,1;"); // trigger on
apspijkerman 0:6a0d5fb13029 875 if (trigEdge) SetValue(42,1); else SetValue(42,0); // System.out.print("!i42,1;"); // trigger edge
apspijkerman 0:6a0d5fb13029 876 if (trigSrc) SetValue(43,1); else SetValue(43,0); // System.out.print("!i43,0;"); // trigger source
apspijkerman 0:6a0d5fb13029 877
apspijkerman 0:6a0d5fb13029 878 SetValue(10, PosA); // System.out.print("!i10,128;"); // pos chan a
apspijkerman 0:6a0d5fb13029 879 SetValue(12, ChanAMode); // System.out.print("!i12,0;"); // chan a mode
apspijkerman 0:6a0d5fb13029 880 if (UseChanA) SetValue(11,1); else SetValue(11,0); // System.out.print("!i11,1;"); // channel a on
apspijkerman 0:6a0d5fb13029 881
apspijkerman 0:6a0d5fb13029 882 SetValue(20, PosB); // System.out.print("!i20,128;"); // pos chan b
apspijkerman 0:6a0d5fb13029 883 SetValue(22, ChanBMode); // System.out.print("!i22,0;"); // chan b mode
apspijkerman 0:6a0d5fb13029 884 if (UseChanB) SetValue(21,1); else SetValue(21,0); // System.out.print("!i21,1;"); // channel b on
apspijkerman 0:6a0d5fb13029 885
apspijkerman 0:6a0d5fb13029 886 while (true){
apspijkerman 0:6a0d5fb13029 887 if (ecnt == 2){ // test speed up
apspijkerman 0:6a0d5fb13029 888 x = GetEvent();
apspijkerman 0:6a0d5fb13029 889 ecnt = 0;
apspijkerman 0:6a0d5fb13029 890 }else{
apspijkerman 0:6a0d5fb13029 891 ecnt++;
apspijkerman 0:6a0d5fb13029 892 x = 0;
apspijkerman 0:6a0d5fb13029 893 }
apspijkerman 0:6a0d5fb13029 894
apspijkerman 0:6a0d5fb13029 895 if (x != 0){ // do we have a gui click or event ?
apspijkerman 0:6a0d5fb13029 896 ecnt = 0; // just had an event, so max wait
apspijkerman 0:6a0d5fb13029 897 s = GetValue(x); // get value of gui element x
apspijkerman 0:6a0d5fb13029 898
apspijkerman 0:6a0d5fb13029 899 // now handle GUI element x with value/state s
apspijkerman 0:6a0d5fb13029 900 if (x == 1){ //mode 0=scope, 1=xy, 2=rec(,3 =off ?)
apspijkerman 0:6a0d5fb13029 901 mode = s;
apspijkerman 0:6a0d5fb13029 902 // clear graph
apspijkerman 0:6a0d5fb13029 903 //'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c
apspijkerman 0:6a0d5fb13029 904 //DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color 11c
apspijkerman 0:6a0d5fb13029 905 //System.out.print("!s100,100,200;!c;");
apspijkerman 0:6a0d5fb13029 906 SetColor(100,100,200);
apspijkerman 0:6a0d5fb13029 907 ClearScreen();
apspijkerman 0:6a0d5fb13029 908 } else
apspijkerman 0:6a0d5fb13029 909 if (x == 102){ // on/off switch ??
apspijkerman 0:6a0d5fb13029 910 // mode = s;
apspijkerman 0:6a0d5fb13029 911 } else
apspijkerman 0:6a0d5fb13029 912 if (x == 100){ // turnknob for recorder
apspijkerman 0:6a0d5fb13029 913 // mode = s;
apspijkerman 0:6a0d5fb13029 914 } else
apspijkerman 0:6a0d5fb13029 915 if (x == 103){ // grid on/off switch
apspijkerman 0:6a0d5fb13029 916 //grid = s;
apspijkerman 0:6a0d5fb13029 917 if (s == 0) grid = false; else grid = true;
apspijkerman 0:6a0d5fb13029 918 } else
apspijkerman 0:6a0d5fb13029 919 if (x == 104){ // ltc1298 on/off switch
apspijkerman 0:6a0d5fb13029 920 //grid = s;
apspijkerman 0:6a0d5fb13029 921 if (s == 0) adc = false; else adc = true;
apspijkerman 0:6a0d5fb13029 922 } else
apspijkerman 0:6a0d5fb13029 923 if (x == 30){ // speed 0,1,2,3
apspijkerman 0:6a0d5fb13029 924 speed = s;
apspijkerman 0:6a0d5fb13029 925 } else
apspijkerman 0:6a0d5fb13029 926
apspijkerman 0:6a0d5fb13029 927
apspijkerman 0:6a0d5fb13029 928
apspijkerman 0:6a0d5fb13029 929
apspijkerman 0:6a0d5fb13029 930 if (x == 40){ // trigger level
apspijkerman 0:6a0d5fb13029 931 trigLevel = 255 - s;
apspijkerman 0:6a0d5fb13029 932 } else
apspijkerman 0:6a0d5fb13029 933 if (x == 41){ // trigger on/off
apspijkerman 0:6a0d5fb13029 934 //trigMode = s;
apspijkerman 0:6a0d5fb13029 935 if (s == 0) trigMode = false; else trigMode = true;
apspijkerman 0:6a0d5fb13029 936 } else
apspijkerman 0:6a0d5fb13029 937 if (x == 42){ // trigger edge
apspijkerman 0:6a0d5fb13029 938 //trigEdge = s;
apspijkerman 0:6a0d5fb13029 939 if (s == 0) trigEdge = false; else trigEdge = true;
apspijkerman 0:6a0d5fb13029 940 } else
apspijkerman 0:6a0d5fb13029 941 if (x == 43){ // trigger source
apspijkerman 0:6a0d5fb13029 942 //trigSrc = s;
apspijkerman 0:6a0d5fb13029 943 if (s == 0) trigSrc = false; else trigSrc = true;
apspijkerman 0:6a0d5fb13029 944 } else
apspijkerman 0:6a0d5fb13029 945
apspijkerman 0:6a0d5fb13029 946 if (x == 10){ // pos chan a
apspijkerman 0:6a0d5fb13029 947 PosA = s;
apspijkerman 0:6a0d5fb13029 948 } else
apspijkerman 0:6a0d5fb13029 949 if (x == 11){ // chan a on/off
apspijkerman 0:6a0d5fb13029 950 //UseChanA = s;
apspijkerman 0:6a0d5fb13029 951 if (s == 0) UseChanA = false; else UseChanA = true;
apspijkerman 0:6a0d5fb13029 952 } else
apspijkerman 0:6a0d5fb13029 953 if (x == 12){ // chan a mode (0=1.5v, 1=15v, 2=gnd)
apspijkerman 0:6a0d5fb13029 954 ChanAMode = s;
apspijkerman 0:6a0d5fb13029 955 } else
apspijkerman 0:6a0d5fb13029 956
apspijkerman 0:6a0d5fb13029 957 if (x == 20){ // pos chan b
apspijkerman 0:6a0d5fb13029 958 PosB = s;
apspijkerman 0:6a0d5fb13029 959 } else
apspijkerman 0:6a0d5fb13029 960 if (x == 21){ // chan b on/off
apspijkerman 0:6a0d5fb13029 961 //UseChanB = s;
apspijkerman 0:6a0d5fb13029 962 if (s == 0) UseChanB = false; else UseChanB = true;
apspijkerman 0:6a0d5fb13029 963 } else
apspijkerman 0:6a0d5fb13029 964 if (x == 22){ // chan b mode (0=1.5v, 1=15v, 2=gnd)
apspijkerman 0:6a0d5fb13029 965 ChanBMode = s;
apspijkerman 0:6a0d5fb13029 966 }
apspijkerman 0:6a0d5fb13029 967 } // if event
apspijkerman 0:6a0d5fb13029 968
apspijkerman 0:6a0d5fb13029 969
apspijkerman 0:6a0d5fb13029 970 if (mode == 0){ // xt scope mode
apspijkerman 0:6a0d5fb13029 971 // trigger
apspijkerman 0:6a0d5fb13029 972 if (trigMode){
apspijkerman 0:6a0d5fb13029 973
apspijkerman 0:6a0d5fb13029 974 if (trigEdge == false){
apspijkerman 0:6a0d5fb13029 975 pval = 255;
apspijkerman 0:6a0d5fb13029 976 }else{
apspijkerman 0:6a0d5fb13029 977 pval = 0;
apspijkerman 0:6a0d5fb13029 978 }
apspijkerman 0:6a0d5fb13029 979 cnt = 0;
apspijkerman 0:6a0d5fb13029 980 ready = false;
apspijkerman 0:6a0d5fb13029 981 do {
apspijkerman 0:6a0d5fb13029 982 cnt++;
apspijkerman 0:6a0d5fb13029 983 if (cnt == 20) ready = true;
apspijkerman 0:6a0d5fb13029 984
apspijkerman 0:6a0d5fb13029 985 if (adc){ // ltc 1298 mode
apspijkerman 0:6a0d5fb13029 986 if (trigSrc == false){ // chan a
apspijkerman 0:6a0d5fb13029 987 val = readadc(2,1,0, 0, ChanAMode );
apspijkerman 0:6a0d5fb13029 988 }else{ // chan b
apspijkerman 0:6a0d5fb13029 989 val = readadc(2,1,0, 1, ChanBMode ); ;
apspijkerman 0:6a0d5fb13029 990 }
apspijkerman 0:6a0d5fb13029 991 }else{ // opamp/transistor mode
apspijkerman 0:6a0d5fb13029 992
apspijkerman 0:6a0d5fb13029 993 if (trigSrc == false){ // chan a
apspijkerman 0:6a0d5fb13029 994 val = measure(0, ChanAMode );
apspijkerman 0:6a0d5fb13029 995 }else{ // chan b
apspijkerman 0:6a0d5fb13029 996 val = measure(1, ChanBMode );
apspijkerman 0:6a0d5fb13029 997 }
apspijkerman 0:6a0d5fb13029 998
apspijkerman 0:6a0d5fb13029 999 }
apspijkerman 0:6a0d5fb13029 1000 // now val is the value we want to check trigger on
apspijkerman 0:6a0d5fb13029 1001
apspijkerman 0:6a0d5fb13029 1002 if (trigEdge == false) {
apspijkerman 0:6a0d5fb13029 1003 if (trigLevel < val && trigLevel >= pval) ready = true;
apspijkerman 0:6a0d5fb13029 1004 }else{
apspijkerman 0:6a0d5fb13029 1005 if (trigLevel > val && trigLevel <= pval) ready = true;
apspijkerman 0:6a0d5fb13029 1006 }
apspijkerman 0:6a0d5fb13029 1007 pval = val;
apspijkerman 0:6a0d5fb13029 1008
apspijkerman 0:6a0d5fb13029 1009 }while (!ready);
apspijkerman 0:6a0d5fb13029 1010 } // trigMode
apspijkerman 0:6a0d5fb13029 1011
apspijkerman 0:6a0d5fb13029 1012 ptr = 0; // mem counter
apspijkerman 0:6a0d5fb13029 1013 if (adc){ // ltc 1298 mode
apspijkerman 0:6a0d5fb13029 1014 for (cnt = 0; cnt <= 29; cnt++){
apspijkerman 0:6a0d5fb13029 1015 if (UseChanA){
apspijkerman 0:6a0d5fb13029 1016 //val = readadc(2,1,0, 0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1017 //if (ChanAMode == 0){
apspijkerman 0:6a0d5fb13029 1018 // val = val - (2048-128);
apspijkerman 0:6a0d5fb13029 1019 //}else{
apspijkerman 0:6a0d5fb13029 1020 // val = val >> 4;
apspijkerman 0:6a0d5fb13029 1021 //}
apspijkerman 0:6a0d5fb13029 1022 //mem[ptr] = val;
apspijkerman 0:6a0d5fb13029 1023 mem[ptr] = readadc(2,1,0, 0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1024 }
apspijkerman 0:6a0d5fb13029 1025 ptr++;
apspijkerman 0:6a0d5fb13029 1026
apspijkerman 0:6a0d5fb13029 1027 if (UseChanB){
apspijkerman 0:6a0d5fb13029 1028 //val = readadc(2,1,0, 1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1029 //if (ChanBMode == 0){
apspijkerman 0:6a0d5fb13029 1030 // val = val - (2048-128);
apspijkerman 0:6a0d5fb13029 1031 //}else{
apspijkerman 0:6a0d5fb13029 1032 // val = val >> 4;
apspijkerman 0:6a0d5fb13029 1033 //}
apspijkerman 0:6a0d5fb13029 1034 //mem[ptr] = val;
apspijkerman 0:6a0d5fb13029 1035 mem[ptr] = readadc(2,1,0, 1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1036 }
apspijkerman 0:6a0d5fb13029 1037 ptr++;
apspijkerman 0:6a0d5fb13029 1038
apspijkerman 0:6a0d5fb13029 1039 if (speed > 0){
apspijkerman 0:6a0d5fb13029 1040 if (speed == 1) wait(0.001); // CPU.delay(speed);
apspijkerman 0:6a0d5fb13029 1041 if (speed == 2) wait(0.01 ); // CPU.delay(speed);
apspijkerman 0:6a0d5fb13029 1042 if (speed == 3) wait(0.1 ); // CPU.delay(speed);
apspijkerman 0:6a0d5fb13029 1043 }
apspijkerman 0:6a0d5fb13029 1044 } // for
apspijkerman 0:6a0d5fb13029 1045 }else{ // opamp/transistor mode
apspijkerman 0:6a0d5fb13029 1046 for (cnt = 0; cnt <= 29; cnt++){
apspijkerman 0:6a0d5fb13029 1047 if (UseChanA){
apspijkerman 0:6a0d5fb13029 1048 //val = measure(0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1049 //mem[ptr] = val;
apspijkerman 0:6a0d5fb13029 1050 mem[ptr] = measure(0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1051 }
apspijkerman 0:6a0d5fb13029 1052 ptr++;
apspijkerman 0:6a0d5fb13029 1053
apspijkerman 0:6a0d5fb13029 1054 if (UseChanB){
apspijkerman 0:6a0d5fb13029 1055 //val = measure(1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1056 //mem[ptr] = val;
apspijkerman 0:6a0d5fb13029 1057 mem[ptr] = measure(1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1058 }
apspijkerman 0:6a0d5fb13029 1059 ptr++;
apspijkerman 0:6a0d5fb13029 1060
apspijkerman 0:6a0d5fb13029 1061 if (speed > 0){
apspijkerman 0:6a0d5fb13029 1062 if (speed == 1) wait(0.001); // CPU.delay(speed);
apspijkerman 0:6a0d5fb13029 1063 if (speed == 2) wait(0.01 ); // CPU.delay(speed);
apspijkerman 0:6a0d5fb13029 1064 if (speed == 3) wait(0.1 ); // CPU.delay(speed);
apspijkerman 0:6a0d5fb13029 1065 }
apspijkerman 0:6a0d5fb13029 1066 } // for
apspijkerman 0:6a0d5fb13029 1067 } // !adc
apspijkerman 0:6a0d5fb13029 1068
apspijkerman 0:6a0d5fb13029 1069 // ' clear graph
apspijkerman 0:6a0d5fb13029 1070 // 'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c
apspijkerman 0:6a0d5fb13029 1071 // DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color 11c
apspijkerman 0:6a0d5fb13029 1072 //System.out.print("!s100,100,200;!c;");
apspijkerman 0:6a0d5fb13029 1073 SetColor(100,100,200);
apspijkerman 0:6a0d5fb13029 1074 ClearScreen();
apspijkerman 0:6a0d5fb13029 1075
apspijkerman 0:6a0d5fb13029 1076 if (grid){
apspijkerman 0:6a0d5fb13029 1077 //'DEBUG "!s128,128,228;" 'set lighter color 14c
apspijkerman 0:6a0d5fb13029 1078 // DEBUG "!sb",3,128,128,228,";" 'fast binary way to set color 8c
apspijkerman 0:6a0d5fb13029 1079 //System.out.print("!s128,128,228;");
apspijkerman 0:6a0d5fb13029 1080 SetColor(128,128,228);
apspijkerman 0:6a0d5fb13029 1081
apspijkerman 0:6a0d5fb13029 1082 //'DEBUG "!a20,20,29,19,55,12;" 'slow ascii way draw grid 20c
apspijkerman 0:6a0d5fb13029 1083 //DEBUG "!ab",6,20,20,29,19,55,12,";" 'fast binary way to draw grid 11c
apspijkerman 0:6a0d5fb13029 1084 //System.out.print("!a20,20,29,19,55,12;");
apspijkerman 0:6a0d5fb13029 1085 DrawGrid(20,20,29,19,55,12);
apspijkerman 0:6a0d5fb13029 1086
apspijkerman 0:6a0d5fb13029 1087 if (trigMode){
apspijkerman 0:6a0d5fb13029 1088 cnt = trigLevel;
apspijkerman 0:6a0d5fb13029 1089 if (trigSrc == false){
apspijkerman 0:6a0d5fb13029 1090 cnt = 255 - cnt + PosA - 128;
apspijkerman 0:6a0d5fb13029 1091 }else{
apspijkerman 0:6a0d5fb13029 1092 cnt = 255 - cnt + PosB - 128;
apspijkerman 0:6a0d5fb13029 1093 }
apspijkerman 0:6a0d5fb13029 1094
apspijkerman 0:6a0d5fb13029 1095 // 'DEBUG "!l", DEC 1,",", DEC cnt,",", DEC 40,",", DEC cnt, ";" 'slow
apspijkerman 0:6a0d5fb13029 1096 //DEBUG "!lb", 4,1,cnt,40,cnt,";" ' fast
apspijkerman 0:6a0d5fb13029 1097 //System.out.print("!l1,");
apspijkerman 0:6a0d5fb13029 1098 //System.out.print( cnt);
apspijkerman 0:6a0d5fb13029 1099 //System.out.print(",40,");
apspijkerman 0:6a0d5fb13029 1100 //System.out.print( cnt );
apspijkerman 0:6a0d5fb13029 1101 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1102 DrawLine(1,cnt,40,cnt);
apspijkerman 0:6a0d5fb13029 1103 } // end trigMode
apspijkerman 0:6a0d5fb13029 1104 } // end grid
apspijkerman 0:6a0d5fb13029 1105
apspijkerman 0:6a0d5fb13029 1106
apspijkerman 0:6a0d5fb13029 1107 if (UseChanA){
apspijkerman 0:6a0d5fb13029 1108 // draw channel a
apspijkerman 0:6a0d5fb13029 1109 // 'set color black
apspijkerman 0:6a0d5fb13029 1110 // 'DEBUG "!s0,0,0;" 'slow ascii way to set color 8c
apspijkerman 0:6a0d5fb13029 1111 // DEBUG "!sb",3, 0,0,0, ";" 'fast binary way to set color 8c
apspijkerman 0:6a0d5fb13029 1112 //System.out.print("!s0,0,0;");
apspijkerman 0:6a0d5fb13029 1113 SetColor(0,0,0);
apspijkerman 0:6a0d5fb13029 1114
apspijkerman 0:6a0d5fb13029 1115 ptr = 0;
apspijkerman 0:6a0d5fb13029 1116 s = mem[ ptr ];
apspijkerman 0:6a0d5fb13029 1117 s = 255 - s + PosA - 128;
apspijkerman 0:6a0d5fb13029 1118 ptr = ptr + 2;
apspijkerman 0:6a0d5fb13029 1119 s -= 60;
apspijkerman 0:6a0d5fb13029 1120
apspijkerman 0:6a0d5fb13029 1121 //DEBUG "!Pb", 33,20, 0,60 , s ' init poly line cmd in binary mode 38c
apspijkerman 0:6a0d5fb13029 1122 //' 33 is number of bytes we are going to send
apspijkerman 0:6a0d5fb13029 1123 //' 20=dx , 0=dy (which means we only send y values)
apspijkerman 0:6a0d5fb13029 1124 //' 0,60 = start x,y
apspijkerman 0:6a0d5fb13029 1125
apspijkerman 0:6a0d5fb13029 1126 //System.out.print("!P20,0,60,");
apspijkerman 0:6a0d5fb13029 1127 //System.out.print( s );
apspijkerman 0:6a0d5fb13029 1128 /*
apspijkerman 0:6a0d5fb13029 1129 serbuf.clear();
apspijkerman 0:6a0d5fb13029 1130 serbuf.append("!Pb"); // poly line, binary mode
apspijkerman 0:6a0d5fb13029 1131 serbuf.append((char)33); // 33 values follow
apspijkerman 0:6a0d5fb13029 1132 serbuf.append((char)20); // dx=20
apspijkerman 0:6a0d5fb13029 1133 serbuf.append((char) 0); // dy=0 .. so only y values
apspijkerman 0:6a0d5fb13029 1134 serbuf.append((char)60); // x start
apspijkerman 0:6a0d5fb13029 1135 serbuf.append((char) s); // y start
apspijkerman 0:6a0d5fb13029 1136 */
apspijkerman 0:6a0d5fb13029 1137 serial.printf("!Pb");
apspijkerman 0:6a0d5fb13029 1138 serial.printf("%c%c%c%c%c", 33, 20, 0, 60, s);
apspijkerman 0:6a0d5fb13029 1139
apspijkerman 0:6a0d5fb13029 1140 for (cnt = 0; cnt <= 28; cnt++){
apspijkerman 0:6a0d5fb13029 1141 x = mem[ ptr ];
apspijkerman 0:6a0d5fb13029 1142 x = 255 - x + PosA - 128;
apspijkerman 0:6a0d5fb13029 1143 ptr = ptr + 2;
apspijkerman 0:6a0d5fb13029 1144
apspijkerman 0:6a0d5fb13029 1145 //'' --- slow line ---
apspijkerman 0:6a0d5fb13029 1146 //''val = cnt * 20
apspijkerman 0:6a0d5fb13029 1147 //''DEBUG "!l",DEC val,",",DEC s,",", DEC val+20,",", DEC x,";" ' chars 18
apspijkerman 0:6a0d5fb13029 1148 //'' --- faster line ---
apspijkerman 0:6a0d5fb13029 1149 //''val = cnt * 8
apspijkerman 0:6a0d5fb13029 1150 //''DEBUG "!lb", 4 , val , s, val+8 , x , ";" 'chars 8
apspijkerman 0:6a0d5fb13029 1151 //'' --- fastest line ---
apspijkerman 0:6a0d5fb13029 1152 //DEBUG x 'chars 1 (poly line cmd with constant dx)
apspijkerman 0:6a0d5fb13029 1153
apspijkerman 0:6a0d5fb13029 1154 //System.out.print( "," );
apspijkerman 0:6a0d5fb13029 1155 //System.out.print( x );
apspijkerman 0:6a0d5fb13029 1156
apspijkerman 0:6a0d5fb13029 1157 x -= 60;
apspijkerman 0:6a0d5fb13029 1158 if (x > 127) x -= 256; // int to char ?
apspijkerman 0:6a0d5fb13029 1159 //serbuf.append((char) x ); // y value of next line
apspijkerman 0:6a0d5fb13029 1160 serial.printf("%c", x ); // y value of next line
apspijkerman 0:6a0d5fb13029 1161
apspijkerman 0:6a0d5fb13029 1162 //s = x;
apspijkerman 0:6a0d5fb13029 1163 }
apspijkerman 0:6a0d5fb13029 1164 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1165 //serbuf.append(";");
apspijkerman 0:6a0d5fb13029 1166 //System.out.print(serbuf.toString());
apspijkerman 0:6a0d5fb13029 1167 serial.printf(";");
apspijkerman 0:6a0d5fb13029 1168
apspijkerman 0:6a0d5fb13029 1169 } // end UseChanA
apspijkerman 0:6a0d5fb13029 1170
apspijkerman 0:6a0d5fb13029 1171 if (UseChanB){
apspijkerman 0:6a0d5fb13029 1172 //' draw channel b
apspijkerman 0:6a0d5fb13029 1173 //'set color white
apspijkerman 0:6a0d5fb13029 1174 //'DEBUG "!s255,255,255;" 'slow ascii way to set color
apspijkerman 0:6a0d5fb13029 1175 //DEBUG "!sb",3,255,255,255,";" 'fast binary way to set color
apspijkerman 0:6a0d5fb13029 1176 //System.out.print("!s255,255,255;");
apspijkerman 0:6a0d5fb13029 1177 SetColor(255,255,255);
apspijkerman 0:6a0d5fb13029 1178
apspijkerman 0:6a0d5fb13029 1179 ptr = 1;
apspijkerman 0:6a0d5fb13029 1180 s = mem[ ptr ];
apspijkerman 0:6a0d5fb13029 1181 s = 255 - s + PosB - 128;
apspijkerman 0:6a0d5fb13029 1182 ptr = ptr + 2;
apspijkerman 0:6a0d5fb13029 1183 s -= 60;
apspijkerman 0:6a0d5fb13029 1184
apspijkerman 0:6a0d5fb13029 1185 //DEBUG "!Pb", 33,20, 0,60 , s ' init poly line cmd in binary mode 38c
apspijkerman 0:6a0d5fb13029 1186 //' 33 is number of bytes we are going to send
apspijkerman 0:6a0d5fb13029 1187 //' 20=dx , 0=dy (which means we only send y values)
apspijkerman 0:6a0d5fb13029 1188 //' 0,60 = start x,y
apspijkerman 0:6a0d5fb13029 1189
apspijkerman 0:6a0d5fb13029 1190 //System.out.print("!P20,0,60,");
apspijkerman 0:6a0d5fb13029 1191 //System.out.print( s );
apspijkerman 0:6a0d5fb13029 1192 /*
apspijkerman 0:6a0d5fb13029 1193 serbuf.clear();
apspijkerman 0:6a0d5fb13029 1194 serbuf.append("!Pb");
apspijkerman 0:6a0d5fb13029 1195 serbuf.append((char)33);
apspijkerman 0:6a0d5fb13029 1196 serbuf.append((char)20);
apspijkerman 0:6a0d5fb13029 1197 serbuf.append((char) 0);
apspijkerman 0:6a0d5fb13029 1198 serbuf.append((char)60);
apspijkerman 0:6a0d5fb13029 1199 serbuf.append((char) s);
apspijkerman 0:6a0d5fb13029 1200 */
apspijkerman 0:6a0d5fb13029 1201 serial.printf("!Pb");
apspijkerman 0:6a0d5fb13029 1202 serial.printf("%c%c%c%c%c", 33, 20, 0, 60, s );
apspijkerman 0:6a0d5fb13029 1203
apspijkerman 0:6a0d5fb13029 1204 for (cnt = 0; cnt <= 28; cnt++){
apspijkerman 0:6a0d5fb13029 1205 x = mem[ ptr ];
apspijkerman 0:6a0d5fb13029 1206 x = 255 - x + PosB - 128;
apspijkerman 0:6a0d5fb13029 1207 ptr = ptr + 2;
apspijkerman 0:6a0d5fb13029 1208
apspijkerman 0:6a0d5fb13029 1209 //'' --- slow line ---
apspijkerman 0:6a0d5fb13029 1210 //''val = cnt * 20
apspijkerman 0:6a0d5fb13029 1211 //''DEBUG "!l",DEC val,",",DEC s,",", DEC val+20,",", DEC x,";"
apspijkerman 0:6a0d5fb13029 1212 //'' --- faster line ---
apspijkerman 0:6a0d5fb13029 1213 //''val = cnt * 8
apspijkerman 0:6a0d5fb13029 1214 //''DEBUG "!lb", 4 , val , s, val+8 , x , ";"
apspijkerman 0:6a0d5fb13029 1215 //'' --- fastest line ---
apspijkerman 0:6a0d5fb13029 1216 //DEBUG x 'chars 1 (poly line cmd with constant dx)
apspijkerman 0:6a0d5fb13029 1217
apspijkerman 0:6a0d5fb13029 1218 //System.out.print( "," );
apspijkerman 0:6a0d5fb13029 1219 //System.out.print( x );
apspijkerman 0:6a0d5fb13029 1220
apspijkerman 0:6a0d5fb13029 1221 x -= 60;
apspijkerman 0:6a0d5fb13029 1222 if (x > 127) x -= 256; // int to char ?
apspijkerman 0:6a0d5fb13029 1223 //serbuf.append((char) x );
apspijkerman 0:6a0d5fb13029 1224 serial.printf("%c", x );
apspijkerman 0:6a0d5fb13029 1225
apspijkerman 0:6a0d5fb13029 1226 //s = x;
apspijkerman 0:6a0d5fb13029 1227 }
apspijkerman 0:6a0d5fb13029 1228 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1229 //serbuf.append(";");
apspijkerman 0:6a0d5fb13029 1230 //System.out.print(serbuf.toString());
apspijkerman 0:6a0d5fb13029 1231 serial.printf(";");
apspijkerman 0:6a0d5fb13029 1232
apspijkerman 0:6a0d5fb13029 1233 } // end UseChanB
apspijkerman 0:6a0d5fb13029 1234
apspijkerman 0:6a0d5fb13029 1235 //CPU.delay(1);
apspijkerman 0:6a0d5fb13029 1236 } // end xt scope mode
apspijkerman 0:6a0d5fb13029 1237
apspijkerman 0:6a0d5fb13029 1238 if (mode == 2){ // recorder mode
apspijkerman 0:6a0d5fb13029 1239 if (adc){ // ltc1298 mode
apspijkerman 0:6a0d5fb13029 1240 val = readadc(2,1,0, 0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1241 valb = readadc(2,1,0, 1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1242 }else{
apspijkerman 0:6a0d5fb13029 1243 val = measure(0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1244 valb = measure(1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1245 }
apspijkerman 0:6a0d5fb13029 1246
apspijkerman 0:6a0d5fb13029 1247 val = val + PosA - 128; // offset
apspijkerman 0:6a0d5fb13029 1248 valb = valb + PosB - 128;
apspijkerman 0:6a0d5fb13029 1249
apspijkerman 0:6a0d5fb13029 1250 //' set plot color
apspijkerman 0:6a0d5fb13029 1251 //DEBUG "!s0,0,0;"
apspijkerman 0:6a0d5fb13029 1252 //System.out.print("!s0,0,0;");
apspijkerman 0:6a0d5fb13029 1253 SetColor(0,0,0);
apspijkerman 0:6a0d5fb13029 1254
apspijkerman 0:6a0d5fb13029 1255 //' plot xy
apspijkerman 0:6a0d5fb13029 1256 //'DEBUG "!p", DEC 610,",", DEC val, ";"
apspijkerman 0:6a0d5fb13029 1257 //' line xy
apspijkerman 0:6a0d5fb13029 1258 //DEBUG "!l", DEC 610,",", DEC val,",", DEC 609,",", DEC pval ,";"
apspijkerman 0:6a0d5fb13029 1259
apspijkerman 0:6a0d5fb13029 1260 //System.out.print("!l610,");
apspijkerman 0:6a0d5fb13029 1261 //System.out.print( val );
apspijkerman 0:6a0d5fb13029 1262 //System.out.print(",609,");
apspijkerman 0:6a0d5fb13029 1263 //System.out.print( pval );
apspijkerman 0:6a0d5fb13029 1264 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1265 DrawLine(610,val,609,pval);
apspijkerman 0:6a0d5fb13029 1266
apspijkerman 0:6a0d5fb13029 1267 pval = val;
apspijkerman 0:6a0d5fb13029 1268
apspijkerman 0:6a0d5fb13029 1269 //' set plot color
apspijkerman 0:6a0d5fb13029 1270 //'DEBUG "!s250,250,250;" 'slow ascii way to set color
apspijkerman 0:6a0d5fb13029 1271 //DEBUG "!sb",3,250,250,250,";" 'fast binary way to set color
apspijkerman 0:6a0d5fb13029 1272 //System.out.print("!s250,250,250;");
apspijkerman 0:6a0d5fb13029 1273 SetColor(250,250,250);
apspijkerman 0:6a0d5fb13029 1274
apspijkerman 0:6a0d5fb13029 1275 //' plot xy
apspijkerman 0:6a0d5fb13029 1276 //'DEBUG "!p", DEC 610,",", DEC valb, ";"
apspijkerman 0:6a0d5fb13029 1277 //' line xy
apspijkerman 0:6a0d5fb13029 1278 //DEBUG "!l", DEC 610,",", DEC valb,",", DEC 609,",", DEC pvalb ,";"
apspijkerman 0:6a0d5fb13029 1279
apspijkerman 0:6a0d5fb13029 1280 //System.out.print("!l610,");
apspijkerman 0:6a0d5fb13029 1281 //System.out.print( valb );
apspijkerman 0:6a0d5fb13029 1282 //System.out.print(",609,");
apspijkerman 0:6a0d5fb13029 1283 //System.out.print( pvalb );
apspijkerman 0:6a0d5fb13029 1284 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1285 DrawLine(610,valb,609,pvalb);
apspijkerman 0:6a0d5fb13029 1286
apspijkerman 0:6a0d5fb13029 1287 pvalb = valb;
apspijkerman 0:6a0d5fb13029 1288
apspijkerman 0:6a0d5fb13029 1289 // ' scrol 1 pixel to the left
apspijkerman 0:6a0d5fb13029 1290 //DEBUG "!G20,1;"
apspijkerman 0:6a0d5fb13029 1291 //System.out.print("!G20,1;");
apspijkerman 0:6a0d5fb13029 1292 serial.printf("!G20,1;");
apspijkerman 0:6a0d5fb13029 1293 } // end recorder mode
apspijkerman 0:6a0d5fb13029 1294
apspijkerman 0:6a0d5fb13029 1295 if (mode == 1){ // xy scope mode
apspijkerman 0:6a0d5fb13029 1296 if (adc){ // ltc1298 mode
apspijkerman 0:6a0d5fb13029 1297 val = readadc(2,1,0, 0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1298 valb = readadc(2,1,0, 1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1299 }else{
apspijkerman 0:6a0d5fb13029 1300 val = measure(0, ChanAMode );
apspijkerman 0:6a0d5fb13029 1301 valb = measure(1, ChanBMode );
apspijkerman 0:6a0d5fb13029 1302 }
apspijkerman 0:6a0d5fb13029 1303
apspijkerman 0:6a0d5fb13029 1304 //' set plot color
apspijkerman 0:6a0d5fb13029 1305 //'DEBUG "!s200,200,200;" 'slow ascii way to set color
apspijkerman 0:6a0d5fb13029 1306 //DEBUG "!sb",3,200,200,200,";" //fast binary way to set color
apspijkerman 0:6a0d5fb13029 1307 //System.out.print("!s,200,200,200;");
apspijkerman 0:6a0d5fb13029 1308 SetColor(200,200,200);
apspijkerman 0:6a0d5fb13029 1309
apspijkerman 0:6a0d5fb13029 1310 //' plot xy
apspijkerman 0:6a0d5fb13029 1311 //DEBUG "!p", DEC val,",", DEC valb, ";"
apspijkerman 0:6a0d5fb13029 1312 //System.out.print("!p");
apspijkerman 0:6a0d5fb13029 1313 //System.out.print( val );
apspijkerman 0:6a0d5fb13029 1314 //System.out.print(",");
apspijkerman 0:6a0d5fb13029 1315 //System.out.print( valb );
apspijkerman 0:6a0d5fb13029 1316 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1317 Plot(val,valb);
apspijkerman 0:6a0d5fb13029 1318
apspijkerman 0:6a0d5fb13029 1319 //' line xy
apspijkerman 0:6a0d5fb13029 1320 //DEBUG "!l", DEC val,",", DEC valb,",", DEC pval,",",DEC pvalb, ";"
apspijkerman 0:6a0d5fb13029 1321
apspijkerman 0:6a0d5fb13029 1322 //System.out.print("!l");
apspijkerman 0:6a0d5fb13029 1323 //System.out.print( val );
apspijkerman 0:6a0d5fb13029 1324 //System.out.print(",");
apspijkerman 0:6a0d5fb13029 1325 //System.out.print( valb );
apspijkerman 0:6a0d5fb13029 1326 //System.out.print(",");
apspijkerman 0:6a0d5fb13029 1327 //System.out.print( pval );
apspijkerman 0:6a0d5fb13029 1328 //System.out.print(",");
apspijkerman 0:6a0d5fb13029 1329 //System.out.print( pvalb );
apspijkerman 0:6a0d5fb13029 1330 //System.out.print(";");
apspijkerman 0:6a0d5fb13029 1331 DrawLine(val, valb, pval, pvalb);
apspijkerman 0:6a0d5fb13029 1332
apspijkerman 0:6a0d5fb13029 1333 pval = val;
apspijkerman 0:6a0d5fb13029 1334 pvalb = valb;
apspijkerman 0:6a0d5fb13029 1335
apspijkerman 0:6a0d5fb13029 1336 cnt = cnt + 1;
apspijkerman 0:6a0d5fb13029 1337 if (cnt == 50){
apspijkerman 0:6a0d5fb13029 1338 //' clear graph
apspijkerman 0:6a0d5fb13029 1339 //'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c
apspijkerman 0:6a0d5fb13029 1340 //DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color 11c
apspijkerman 0:6a0d5fb13029 1341 //System.out.print("!s,100,100,200;!c;");
apspijkerman 0:6a0d5fb13029 1342 SetColor(100,100,200);
apspijkerman 0:6a0d5fb13029 1343 ClearScreen();
apspijkerman 0:6a0d5fb13029 1344
apspijkerman 0:6a0d5fb13029 1345 cnt = 0;
apspijkerman 0:6a0d5fb13029 1346 }
apspijkerman 0:6a0d5fb13029 1347
apspijkerman 0:6a0d5fb13029 1348
apspijkerman 0:6a0d5fb13029 1349 } // end xy mode scope
apspijkerman 0:6a0d5fb13029 1350
apspijkerman 0:6a0d5fb13029 1351 } // end while true
apspijkerman 0:6a0d5fb13029 1352 } // end main
apspijkerman 0:6a0d5fb13029 1353
apspijkerman 0:6a0d5fb13029 1354
apspijkerman 0:6a0d5fb13029 1355
apspijkerman 0:6a0d5fb13029 1356
apspijkerman 0:6a0d5fb13029 1357