Converts the MBED in an oscilloscope by using the PC software from http://stampdock.com/ .. same as mbed_sccope, but the stampdock support code is put in a stampdock class. Also a debugged version of mbed_scope, as there was a problem with characters disappearing using putc after using getc which was tricky to find.
main.cpp@0:5b5830ede960, 2011-07-28 (annotated)
- Committer:
- apspijkerman
- Date:
- Thu Jul 28 11:08:04 2011 +0000
- Revision:
- 0:5b5830ede960
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
apspijkerman | 0:5b5830ede960 | 1 | |
apspijkerman | 0:5b5830ede960 | 2 | |
apspijkerman | 0:5b5830ede960 | 3 | #include "mbed.h" |
apspijkerman | 0:5b5830ede960 | 4 | #include "stampdock.h" |
apspijkerman | 0:5b5830ede960 | 5 | |
apspijkerman | 0:5b5830ede960 | 6 | Stampdock stampdock; |
apspijkerman | 0:5b5830ede960 | 7 | |
apspijkerman | 0:5b5830ede960 | 8 | AnalogIn xa(p15); |
apspijkerman | 0:5b5830ede960 | 9 | AnalogIn ya(p16); |
apspijkerman | 0:5b5830ede960 | 10 | |
apspijkerman | 0:5b5830ede960 | 11 | // mode0 = low , mode1 = high |
apspijkerman | 0:5b5830ede960 | 12 | // returns values of 0-65535 ? |
apspijkerman | 0:5b5830ede960 | 13 | |
apspijkerman | 0:5b5830ede960 | 14 | int readadc(int p1, int p2, int p3, int chan, int mode) |
apspijkerman | 0:5b5830ede960 | 15 | { |
apspijkerman | 0:5b5830ede960 | 16 | int ret = 0; |
apspijkerman | 0:5b5830ede960 | 17 | |
apspijkerman | 0:5b5830ede960 | 18 | if (mode == 0){ |
apspijkerman | 0:5b5830ede960 | 19 | if (chan == 0) ret = xa * 4096; |
apspijkerman | 0:5b5830ede960 | 20 | if (chan == 1) ret = ya * 4096; |
apspijkerman | 0:5b5830ede960 | 21 | } |
apspijkerman | 0:5b5830ede960 | 22 | if (mode == 1){ |
apspijkerman | 0:5b5830ede960 | 23 | if (chan == 0) ret = xa * 256; |
apspijkerman | 0:5b5830ede960 | 24 | if (chan == 1) ret = ya * 256; |
apspijkerman | 0:5b5830ede960 | 25 | } |
apspijkerman | 0:5b5830ede960 | 26 | |
apspijkerman | 0:5b5830ede960 | 27 | return ret; |
apspijkerman | 0:5b5830ede960 | 28 | } |
apspijkerman | 0:5b5830ede960 | 29 | |
apspijkerman | 0:5b5830ede960 | 30 | int measure( int chan, int mode) |
apspijkerman | 0:5b5830ede960 | 31 | { |
apspijkerman | 0:5b5830ede960 | 32 | int ret = 0; |
apspijkerman | 0:5b5830ede960 | 33 | |
apspijkerman | 0:5b5830ede960 | 34 | if (mode == 0){ |
apspijkerman | 0:5b5830ede960 | 35 | if (chan == 0) ret = xa * 4096; |
apspijkerman | 0:5b5830ede960 | 36 | if (chan == 1) ret = ya * 4096; |
apspijkerman | 0:5b5830ede960 | 37 | } |
apspijkerman | 0:5b5830ede960 | 38 | if (mode == 1){ |
apspijkerman | 0:5b5830ede960 | 39 | if (chan == 0) ret = xa * 256; |
apspijkerman | 0:5b5830ede960 | 40 | if (chan == 1) ret = ya * 256; |
apspijkerman | 0:5b5830ede960 | 41 | } |
apspijkerman | 0:5b5830ede960 | 42 | |
apspijkerman | 0:5b5830ede960 | 43 | return ret; |
apspijkerman | 0:5b5830ede960 | 44 | } |
apspijkerman | 0:5b5830ede960 | 45 | #define boolean int |
apspijkerman | 0:5b5830ede960 | 46 | |
apspijkerman | 0:5b5830ede960 | 47 | // ChanXMode '0=off, 1=low, 2=high, 3=gnd ? |
apspijkerman | 0:5b5830ede960 | 48 | // Mode '0=scope, 1=XY, 2=record (3=off ?) |
apspijkerman | 0:5b5830ede960 | 49 | |
apspijkerman | 0:5b5830ede960 | 50 | |
apspijkerman | 0:5b5830ede960 | 51 | |
apspijkerman | 0:5b5830ede960 | 52 | |
apspijkerman | 0:5b5830ede960 | 53 | |
apspijkerman | 0:5b5830ede960 | 54 | int main() { |
apspijkerman | 0:5b5830ede960 | 55 | boolean UseChanA = true, UseChanB = true; // Bit |
apspijkerman | 0:5b5830ede960 | 56 | boolean ready, grid = true, adc = false; // Bit |
apspijkerman | 0:5b5830ede960 | 57 | int ChanAMode = 0, ChanBMode = 0, mode = 0; // Nib |
apspijkerman | 0:5b5830ede960 | 58 | int PosA = 128, PosB = 128; |
apspijkerman | 0:5b5830ede960 | 59 | |
apspijkerman | 0:5b5830ede960 | 60 | int val, valb, ecnt = 0; // Word |
apspijkerman | 0:5b5830ede960 | 61 | int pval = 0, pvalb = 0; // Bytes |
apspijkerman | 0:5b5830ede960 | 62 | int x, s, cnt = 0, ptr, speed = 0; // Byte |
apspijkerman | 0:5b5830ede960 | 63 | |
apspijkerman | 0:5b5830ede960 | 64 | boolean trigMode = true, trigEdge = false, trigSrc = false; // Bit |
apspijkerman | 0:5b5830ede960 | 65 | int trigLevel = 127; // Byte (128 results in 127 !) |
apspijkerman | 0:5b5830ede960 | 66 | int mem[100]; // [] mem; |
apspijkerman | 0:5b5830ede960 | 67 | |
apspijkerman | 0:5b5830ede960 | 68 | //StringBuffer serbuf = new StringBuffer(80); |
apspijkerman | 0:5b5830ede960 | 69 | |
apspijkerman | 0:5b5830ede960 | 70 | //mem = new int [100]; |
apspijkerman | 0:5b5830ede960 | 71 | |
apspijkerman | 0:5b5830ede960 | 72 | //InitStampdock(); |
apspijkerman | 0:5b5830ede960 | 73 | |
apspijkerman | 0:5b5830ede960 | 74 | |
apspijkerman | 0:5b5830ede960 | 75 | //initpins(); |
apspijkerman | 0:5b5830ede960 | 76 | //initadc(2,1,0); |
apspijkerman | 0:5b5830ede960 | 77 | |
apspijkerman | 0:5b5830ede960 | 78 | //for (s = 0; s < 100; s++) System.out.print((char) 127 ); |
apspijkerman | 0:5b5830ede960 | 79 | //System.out.print((char) 127 ); |
apspijkerman | 0:5b5830ede960 | 80 | //System.out.print("scope running .. "); |
apspijkerman | 0:5b5830ede960 | 81 | stampdock.printf("scope running .. "); |
apspijkerman | 0:5b5830ede960 | 82 | |
apspijkerman | 0:5b5830ede960 | 83 | // reset value of gui buttons if reset |
apspijkerman | 0:5b5830ede960 | 84 | stampdock.SetValue(1, mode); // System.out.print("!i1,0;"); // mode, 0 is xt scope |
apspijkerman | 0:5b5830ede960 | 85 | |
apspijkerman | 0:5b5830ede960 | 86 | stampdock.SetValue(102,0); // System.out.print("!i102,1;"); // on/off switch on |
apspijkerman | 0:5b5830ede960 | 87 | if (grid) stampdock.SetValue(103,1); else stampdock.SetValue(103,0); // System.out.print("!i103,1;"); // grid switch on |
apspijkerman | 0:5b5830ede960 | 88 | if (adc) stampdock.SetValue(104,1); else stampdock.SetValue(104,0); // System.out.print("!i104,0;"); // ltc1298 off |
apspijkerman | 0:5b5830ede960 | 89 | |
apspijkerman | 0:5b5830ede960 | 90 | stampdock.SetValue(30, speed); // System.out.print("!i30,0;"); // speed switch 0 |
apspijkerman | 0:5b5830ede960 | 91 | stampdock.SetValue(40, trigLevel); // System.out.print("!i40,128;"); // trigger level 128 |
apspijkerman | 0:5b5830ede960 | 92 | if (trigMode) stampdock.SetValue(41,1); else stampdock.SetValue(41,0); // System.out.print("!i41,1;"); // trigger on |
apspijkerman | 0:5b5830ede960 | 93 | if (trigEdge) stampdock.SetValue(42,1); else stampdock.SetValue(42,0); // System.out.print("!i42,1;"); // trigger edge |
apspijkerman | 0:5b5830ede960 | 94 | if (trigSrc) stampdock.SetValue(43,1); else stampdock.SetValue(43,0); // System.out.print("!i43,0;"); // trigger source |
apspijkerman | 0:5b5830ede960 | 95 | |
apspijkerman | 0:5b5830ede960 | 96 | stampdock.SetValue(10, PosA); // System.out.print("!i10,128;"); // pos chan a |
apspijkerman | 0:5b5830ede960 | 97 | stampdock.SetValue(12, ChanAMode); // System.out.print("!i12,0;"); // chan a mode |
apspijkerman | 0:5b5830ede960 | 98 | if (UseChanA) stampdock.SetValue(11,1); else stampdock.SetValue(11,0); // System.out.print("!i11,1;"); // channel a on |
apspijkerman | 0:5b5830ede960 | 99 | |
apspijkerman | 0:5b5830ede960 | 100 | stampdock.SetValue(20, PosB); // System.out.print("!i20,128;"); // pos chan b |
apspijkerman | 0:5b5830ede960 | 101 | stampdock.SetValue(22, ChanBMode); // System.out.print("!i22,0;"); // chan b mode |
apspijkerman | 0:5b5830ede960 | 102 | if (UseChanB) stampdock.SetValue(21,1); else stampdock.SetValue(21,0); // System.out.print("!i21,1;"); // channel b on |
apspijkerman | 0:5b5830ede960 | 103 | |
apspijkerman | 0:5b5830ede960 | 104 | while (true){ |
apspijkerman | 0:5b5830ede960 | 105 | if (ecnt > 0){ // (ecnt > 1) test speed up |
apspijkerman | 0:5b5830ede960 | 106 | x = stampdock.GetEvent(); |
apspijkerman | 0:5b5830ede960 | 107 | ecnt = 0; |
apspijkerman | 0:5b5830ede960 | 108 | }else{ |
apspijkerman | 0:5b5830ede960 | 109 | ecnt++; |
apspijkerman | 0:5b5830ede960 | 110 | x = 0; |
apspijkerman | 0:5b5830ede960 | 111 | } |
apspijkerman | 0:5b5830ede960 | 112 | |
apspijkerman | 0:5b5830ede960 | 113 | if (x != 0){ // do we have a gui click or event ? |
apspijkerman | 0:5b5830ede960 | 114 | ecnt = 0; // just had an event, so max wait |
apspijkerman | 0:5b5830ede960 | 115 | s = stampdock.GetValue(x); // get value of gui element x |
apspijkerman | 0:5b5830ede960 | 116 | |
apspijkerman | 0:5b5830ede960 | 117 | // now handle GUI element x with value/state s |
apspijkerman | 0:5b5830ede960 | 118 | if (x == 1){ //mode 0=scope, 1=xy, 2=rec(,3 =off ?) |
apspijkerman | 0:5b5830ede960 | 119 | mode = s; |
apspijkerman | 0:5b5830ede960 | 120 | //stampdock.printf("#*"); // flush |
apspijkerman | 0:5b5830ede960 | 121 | // clear graph |
apspijkerman | 0:5b5830ede960 | 122 | //'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c |
apspijkerman | 0:5b5830ede960 | 123 | //DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color 11c |
apspijkerman | 0:5b5830ede960 | 124 | //System.out.print("!s100,100,200;!c;"); |
apspijkerman | 0:5b5830ede960 | 125 | stampdock.SetColor(100,100,200); |
apspijkerman | 0:5b5830ede960 | 126 | stampdock.ClearScreen(); |
apspijkerman | 0:5b5830ede960 | 127 | } else |
apspijkerman | 0:5b5830ede960 | 128 | if (x == 102){ // on/off switch ?? |
apspijkerman | 0:5b5830ede960 | 129 | // mode = s; |
apspijkerman | 0:5b5830ede960 | 130 | } else |
apspijkerman | 0:5b5830ede960 | 131 | if (x == 100){ // turnknob for recorder |
apspijkerman | 0:5b5830ede960 | 132 | // mode = s; |
apspijkerman | 0:5b5830ede960 | 133 | } else |
apspijkerman | 0:5b5830ede960 | 134 | if (x == 103){ // grid on/off switch |
apspijkerman | 0:5b5830ede960 | 135 | //grid = s; |
apspijkerman | 0:5b5830ede960 | 136 | if (s == 0) grid = false; else grid = true; |
apspijkerman | 0:5b5830ede960 | 137 | } else |
apspijkerman | 0:5b5830ede960 | 138 | if (x == 104){ // ltc1298 on/off switch |
apspijkerman | 0:5b5830ede960 | 139 | //grid = s; |
apspijkerman | 0:5b5830ede960 | 140 | if (s == 0) adc = false; else adc = true; |
apspijkerman | 0:5b5830ede960 | 141 | } else |
apspijkerman | 0:5b5830ede960 | 142 | if (x == 30){ // speed 0,1,2,3 |
apspijkerman | 0:5b5830ede960 | 143 | speed = s; |
apspijkerman | 0:5b5830ede960 | 144 | } else |
apspijkerman | 0:5b5830ede960 | 145 | |
apspijkerman | 0:5b5830ede960 | 146 | |
apspijkerman | 0:5b5830ede960 | 147 | |
apspijkerman | 0:5b5830ede960 | 148 | |
apspijkerman | 0:5b5830ede960 | 149 | if (x == 40){ // trigger level |
apspijkerman | 0:5b5830ede960 | 150 | trigLevel = 255 - s; |
apspijkerman | 0:5b5830ede960 | 151 | } else |
apspijkerman | 0:5b5830ede960 | 152 | if (x == 41){ // trigger on/off |
apspijkerman | 0:5b5830ede960 | 153 | //trigMode = s; |
apspijkerman | 0:5b5830ede960 | 154 | if (s == 0) trigMode = false; else trigMode = true; |
apspijkerman | 0:5b5830ede960 | 155 | } else |
apspijkerman | 0:5b5830ede960 | 156 | if (x == 42){ // trigger edge |
apspijkerman | 0:5b5830ede960 | 157 | //trigEdge = s; |
apspijkerman | 0:5b5830ede960 | 158 | if (s == 0) trigEdge = false; else trigEdge = true; |
apspijkerman | 0:5b5830ede960 | 159 | } else |
apspijkerman | 0:5b5830ede960 | 160 | if (x == 43){ // trigger source |
apspijkerman | 0:5b5830ede960 | 161 | //trigSrc = s; |
apspijkerman | 0:5b5830ede960 | 162 | if (s == 0) trigSrc = false; else trigSrc = true; |
apspijkerman | 0:5b5830ede960 | 163 | } else |
apspijkerman | 0:5b5830ede960 | 164 | |
apspijkerman | 0:5b5830ede960 | 165 | if (x == 10){ // pos chan a |
apspijkerman | 0:5b5830ede960 | 166 | PosA = s; |
apspijkerman | 0:5b5830ede960 | 167 | } else |
apspijkerman | 0:5b5830ede960 | 168 | if (x == 11){ // chan a on/off |
apspijkerman | 0:5b5830ede960 | 169 | //UseChanA = s; |
apspijkerman | 0:5b5830ede960 | 170 | if (s == 0) UseChanA = false; else UseChanA = true; |
apspijkerman | 0:5b5830ede960 | 171 | } else |
apspijkerman | 0:5b5830ede960 | 172 | if (x == 12){ // chan a mode (0=1.5v, 1=15v, 2=gnd) |
apspijkerman | 0:5b5830ede960 | 173 | ChanAMode = s; |
apspijkerman | 0:5b5830ede960 | 174 | } else |
apspijkerman | 0:5b5830ede960 | 175 | |
apspijkerman | 0:5b5830ede960 | 176 | if (x == 20){ // pos chan b |
apspijkerman | 0:5b5830ede960 | 177 | PosB = s; |
apspijkerman | 0:5b5830ede960 | 178 | } else |
apspijkerman | 0:5b5830ede960 | 179 | if (x == 21){ // chan b on/off |
apspijkerman | 0:5b5830ede960 | 180 | //UseChanB = s; |
apspijkerman | 0:5b5830ede960 | 181 | if (s == 0) UseChanB = false; else UseChanB = true; |
apspijkerman | 0:5b5830ede960 | 182 | } else |
apspijkerman | 0:5b5830ede960 | 183 | if (x == 22){ // chan b mode (0=1.5v, 1=15v, 2=gnd) |
apspijkerman | 0:5b5830ede960 | 184 | ChanBMode = s; |
apspijkerman | 0:5b5830ede960 | 185 | } |
apspijkerman | 0:5b5830ede960 | 186 | } // if event |
apspijkerman | 0:5b5830ede960 | 187 | |
apspijkerman | 0:5b5830ede960 | 188 | |
apspijkerman | 0:5b5830ede960 | 189 | if (mode == 0){ // xt scope mode |
apspijkerman | 0:5b5830ede960 | 190 | // trigger |
apspijkerman | 0:5b5830ede960 | 191 | if (trigMode){ |
apspijkerman | 0:5b5830ede960 | 192 | |
apspijkerman | 0:5b5830ede960 | 193 | if (trigEdge == false){ |
apspijkerman | 0:5b5830ede960 | 194 | pval = 255; |
apspijkerman | 0:5b5830ede960 | 195 | }else{ |
apspijkerman | 0:5b5830ede960 | 196 | pval = 0; |
apspijkerman | 0:5b5830ede960 | 197 | } |
apspijkerman | 0:5b5830ede960 | 198 | cnt = 0; |
apspijkerman | 0:5b5830ede960 | 199 | ready = false; |
apspijkerman | 0:5b5830ede960 | 200 | do { |
apspijkerman | 0:5b5830ede960 | 201 | cnt++; |
apspijkerman | 0:5b5830ede960 | 202 | if (cnt == 20) ready = true; |
apspijkerman | 0:5b5830ede960 | 203 | |
apspijkerman | 0:5b5830ede960 | 204 | if (adc){ // ltc 1298 mode |
apspijkerman | 0:5b5830ede960 | 205 | if (trigSrc == false){ // chan a |
apspijkerman | 0:5b5830ede960 | 206 | val = readadc(2,1,0, 0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 207 | }else{ // chan b |
apspijkerman | 0:5b5830ede960 | 208 | val = readadc(2,1,0, 1, ChanBMode ); ; |
apspijkerman | 0:5b5830ede960 | 209 | } |
apspijkerman | 0:5b5830ede960 | 210 | }else{ // opamp/transistor mode |
apspijkerman | 0:5b5830ede960 | 211 | |
apspijkerman | 0:5b5830ede960 | 212 | if (trigSrc == false){ // chan a |
apspijkerman | 0:5b5830ede960 | 213 | val = measure(0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 214 | }else{ // chan b |
apspijkerman | 0:5b5830ede960 | 215 | val = measure(1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 216 | } |
apspijkerman | 0:5b5830ede960 | 217 | |
apspijkerman | 0:5b5830ede960 | 218 | } |
apspijkerman | 0:5b5830ede960 | 219 | // now val is the value we want to check trigger on |
apspijkerman | 0:5b5830ede960 | 220 | |
apspijkerman | 0:5b5830ede960 | 221 | if (trigEdge == false) { |
apspijkerman | 0:5b5830ede960 | 222 | if (trigLevel < val && trigLevel >= pval) ready = true; |
apspijkerman | 0:5b5830ede960 | 223 | }else{ |
apspijkerman | 0:5b5830ede960 | 224 | if (trigLevel > val && trigLevel <= pval) ready = true; |
apspijkerman | 0:5b5830ede960 | 225 | } |
apspijkerman | 0:5b5830ede960 | 226 | pval = val; |
apspijkerman | 0:5b5830ede960 | 227 | |
apspijkerman | 0:5b5830ede960 | 228 | }while (!ready); |
apspijkerman | 0:5b5830ede960 | 229 | } // trigMode |
apspijkerman | 0:5b5830ede960 | 230 | |
apspijkerman | 0:5b5830ede960 | 231 | ptr = 0; // mem counter |
apspijkerman | 0:5b5830ede960 | 232 | if (adc){ // ltc 1298 mode |
apspijkerman | 0:5b5830ede960 | 233 | for (cnt = 0; cnt <= 29; cnt++){ |
apspijkerman | 0:5b5830ede960 | 234 | if (UseChanA){ |
apspijkerman | 0:5b5830ede960 | 235 | //val = readadc(2,1,0, 0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 236 | //if (ChanAMode == 0){ |
apspijkerman | 0:5b5830ede960 | 237 | // val = val - (2048-128); |
apspijkerman | 0:5b5830ede960 | 238 | //}else{ |
apspijkerman | 0:5b5830ede960 | 239 | // val = val >> 4; |
apspijkerman | 0:5b5830ede960 | 240 | //} |
apspijkerman | 0:5b5830ede960 | 241 | //mem[ptr] = val; |
apspijkerman | 0:5b5830ede960 | 242 | mem[ptr] = readadc(2,1,0, 0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 243 | } |
apspijkerman | 0:5b5830ede960 | 244 | ptr++; |
apspijkerman | 0:5b5830ede960 | 245 | |
apspijkerman | 0:5b5830ede960 | 246 | if (UseChanB){ |
apspijkerman | 0:5b5830ede960 | 247 | //val = readadc(2,1,0, 1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 248 | //if (ChanBMode == 0){ |
apspijkerman | 0:5b5830ede960 | 249 | // val = val - (2048-128); |
apspijkerman | 0:5b5830ede960 | 250 | //}else{ |
apspijkerman | 0:5b5830ede960 | 251 | // val = val >> 4; |
apspijkerman | 0:5b5830ede960 | 252 | //} |
apspijkerman | 0:5b5830ede960 | 253 | //mem[ptr] = val; |
apspijkerman | 0:5b5830ede960 | 254 | mem[ptr] = readadc(2,1,0, 1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 255 | } |
apspijkerman | 0:5b5830ede960 | 256 | ptr++; |
apspijkerman | 0:5b5830ede960 | 257 | |
apspijkerman | 0:5b5830ede960 | 258 | if (speed > 0){ |
apspijkerman | 0:5b5830ede960 | 259 | if (speed == 1) wait(0.001); // CPU.delay(speed); |
apspijkerman | 0:5b5830ede960 | 260 | if (speed == 2) wait(0.01 ); // CPU.delay(speed); |
apspijkerman | 0:5b5830ede960 | 261 | if (speed == 3) wait(0.1 ); // CPU.delay(speed); |
apspijkerman | 0:5b5830ede960 | 262 | } |
apspijkerman | 0:5b5830ede960 | 263 | } // for |
apspijkerman | 0:5b5830ede960 | 264 | }else{ // opamp/transistor mode |
apspijkerman | 0:5b5830ede960 | 265 | for (cnt = 0; cnt <= 29; cnt++){ |
apspijkerman | 0:5b5830ede960 | 266 | if (UseChanA){ |
apspijkerman | 0:5b5830ede960 | 267 | //val = measure(0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 268 | //mem[ptr] = val; |
apspijkerman | 0:5b5830ede960 | 269 | mem[ptr] = measure(0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 270 | } |
apspijkerman | 0:5b5830ede960 | 271 | ptr++; |
apspijkerman | 0:5b5830ede960 | 272 | |
apspijkerman | 0:5b5830ede960 | 273 | if (UseChanB){ |
apspijkerman | 0:5b5830ede960 | 274 | //val = measure(1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 275 | //mem[ptr] = val; |
apspijkerman | 0:5b5830ede960 | 276 | mem[ptr] = measure(1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 277 | } |
apspijkerman | 0:5b5830ede960 | 278 | ptr++; |
apspijkerman | 0:5b5830ede960 | 279 | |
apspijkerman | 0:5b5830ede960 | 280 | if (speed > 0){ |
apspijkerman | 0:5b5830ede960 | 281 | if (speed == 1) wait(0.001); // CPU.delay(speed); |
apspijkerman | 0:5b5830ede960 | 282 | if (speed == 2) wait(0.01 ); // CPU.delay(speed); |
apspijkerman | 0:5b5830ede960 | 283 | if (speed == 3) wait(0.1 ); // CPU.delay(speed); |
apspijkerman | 0:5b5830ede960 | 284 | } |
apspijkerman | 0:5b5830ede960 | 285 | } // for |
apspijkerman | 0:5b5830ede960 | 286 | } // !adc |
apspijkerman | 0:5b5830ede960 | 287 | |
apspijkerman | 0:5b5830ede960 | 288 | // ' clear graph |
apspijkerman | 0:5b5830ede960 | 289 | // 'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c |
apspijkerman | 0:5b5830ede960 | 290 | // DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color 11c |
apspijkerman | 0:5b5830ede960 | 291 | //System.out.print("!s100,100,200;!c;"); |
apspijkerman | 0:5b5830ede960 | 292 | |
apspijkerman | 0:5b5830ede960 | 293 | //stampdock.print("#*"); // flush |
apspijkerman | 0:5b5830ede960 | 294 | //stampdock.SetColor(100,100,200); |
apspijkerman | 0:5b5830ede960 | 295 | stampdock.SetColor(100,100,200); |
apspijkerman | 0:5b5830ede960 | 296 | stampdock.ClearScreen(); |
apspijkerman | 0:5b5830ede960 | 297 | |
apspijkerman | 0:5b5830ede960 | 298 | //grid = 0; |
apspijkerman | 0:5b5830ede960 | 299 | if (grid){ |
apspijkerman | 0:5b5830ede960 | 300 | //'DEBUG "!s128,128,228;" 'set lighter color 14c |
apspijkerman | 0:5b5830ede960 | 301 | // DEBUG "!sb",3,128,128,228,";" 'fast binary way to set color 8c |
apspijkerman | 0:5b5830ede960 | 302 | //System.out.print("!s128,128,228;"); |
apspijkerman | 0:5b5830ede960 | 303 | stampdock.SetColor(128,128,228); |
apspijkerman | 0:5b5830ede960 | 304 | |
apspijkerman | 0:5b5830ede960 | 305 | //'DEBUG "!a20,20,29,19,55,12;" 'slow ascii way draw grid 20c |
apspijkerman | 0:5b5830ede960 | 306 | //DEBUG "!ab",6,20,20,29,19,55,12,";" 'fast binary way to draw grid 11c |
apspijkerman | 0:5b5830ede960 | 307 | //System.out.print("!a20,20,29,19,55,12;"); |
apspijkerman | 0:5b5830ede960 | 308 | stampdock.DrawGrid(20,20,29,19,55,12); |
apspijkerman | 0:5b5830ede960 | 309 | |
apspijkerman | 0:5b5830ede960 | 310 | if (trigMode){ |
apspijkerman | 0:5b5830ede960 | 311 | cnt = trigLevel; |
apspijkerman | 0:5b5830ede960 | 312 | if (trigSrc == false){ |
apspijkerman | 0:5b5830ede960 | 313 | cnt = 255 - cnt + PosA - 128; |
apspijkerman | 0:5b5830ede960 | 314 | }else{ |
apspijkerman | 0:5b5830ede960 | 315 | cnt = 255 - cnt + PosB - 128; |
apspijkerman | 0:5b5830ede960 | 316 | } |
apspijkerman | 0:5b5830ede960 | 317 | |
apspijkerman | 0:5b5830ede960 | 318 | // 'DEBUG "!l", DEC 1,",", DEC cnt,",", DEC 40,",", DEC cnt, ";" 'slow |
apspijkerman | 0:5b5830ede960 | 319 | //DEBUG "!lb", 4,1,cnt,40,cnt,";" ' fast |
apspijkerman | 0:5b5830ede960 | 320 | //System.out.print("!l1,"); |
apspijkerman | 0:5b5830ede960 | 321 | //System.out.print( cnt); |
apspijkerman | 0:5b5830ede960 | 322 | //System.out.print(",40,"); |
apspijkerman | 0:5b5830ede960 | 323 | //System.out.print( cnt ); |
apspijkerman | 0:5b5830ede960 | 324 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 325 | stampdock.DrawLine(1,cnt,40,cnt); |
apspijkerman | 0:5b5830ede960 | 326 | } // end trigMode |
apspijkerman | 0:5b5830ede960 | 327 | } // end grid |
apspijkerman | 0:5b5830ede960 | 328 | |
apspijkerman | 0:5b5830ede960 | 329 | //UseChanA = 0; |
apspijkerman | 0:5b5830ede960 | 330 | //UseChanB = 0; |
apspijkerman | 0:5b5830ede960 | 331 | |
apspijkerman | 0:5b5830ede960 | 332 | if (UseChanA){ |
apspijkerman | 0:5b5830ede960 | 333 | // draw channel a |
apspijkerman | 0:5b5830ede960 | 334 | // 'set color black |
apspijkerman | 0:5b5830ede960 | 335 | // 'DEBUG "!s0,0,0;" 'slow ascii way to set color 8c |
apspijkerman | 0:5b5830ede960 | 336 | // DEBUG "!sb",3, 0,0,0, ";" 'fast binary way to set color 8c |
apspijkerman | 0:5b5830ede960 | 337 | //System.out.print("!s0,0,0;"); |
apspijkerman | 0:5b5830ede960 | 338 | stampdock.SetColor(0,0,0); |
apspijkerman | 0:5b5830ede960 | 339 | /* |
apspijkerman | 0:5b5830ede960 | 340 | ptr = 0; |
apspijkerman | 0:5b5830ede960 | 341 | for (cnt = 0; cnt <= 1; cnt++){ // <= 28 |
apspijkerman | 0:5b5830ede960 | 342 | x = mem[ ptr ]; |
apspijkerman | 0:5b5830ede960 | 343 | stampdock.printf("-%d", x ); |
apspijkerman | 0:5b5830ede960 | 344 | ptr = ptr + 2; |
apspijkerman | 0:5b5830ede960 | 345 | } |
apspijkerman | 0:5b5830ede960 | 346 | */ |
apspijkerman | 0:5b5830ede960 | 347 | ptr = 0; |
apspijkerman | 0:5b5830ede960 | 348 | s = mem[ ptr ]; |
apspijkerman | 0:5b5830ede960 | 349 | s = 255 - s + PosA - 128; |
apspijkerman | 0:5b5830ede960 | 350 | ptr = ptr + 2; |
apspijkerman | 0:5b5830ede960 | 351 | s -= 60; |
apspijkerman | 0:5b5830ede960 | 352 | |
apspijkerman | 0:5b5830ede960 | 353 | //if (s < -128) s = -128; |
apspijkerman | 0:5b5830ede960 | 354 | //if (s > 127) s = 127; |
apspijkerman | 0:5b5830ede960 | 355 | //if (s < 0) s = 0; |
apspijkerman | 0:5b5830ede960 | 356 | //if (s > 255) s = 255; |
apspijkerman | 0:5b5830ede960 | 357 | |
apspijkerman | 0:5b5830ede960 | 358 | //DEBUG "!Pb", 33,20, 0,60 , s ' init poly line cmd in binary mode 38c |
apspijkerman | 0:5b5830ede960 | 359 | //' 33 is number of bytes we are going to send |
apspijkerman | 0:5b5830ede960 | 360 | //' 20=dx , 0=dy (which means we only send y values) |
apspijkerman | 0:5b5830ede960 | 361 | //' 0,60 = start x,y |
apspijkerman | 0:5b5830ede960 | 362 | |
apspijkerman | 0:5b5830ede960 | 363 | //System.out.print("!P20,0,60,"); |
apspijkerman | 0:5b5830ede960 | 364 | //System.out.print( s ); |
apspijkerman | 0:5b5830ede960 | 365 | /* |
apspijkerman | 0:5b5830ede960 | 366 | serbuf.clear(); |
apspijkerman | 0:5b5830ede960 | 367 | serbuf.append("!Pb"); // poly line, binary mode |
apspijkerman | 0:5b5830ede960 | 368 | serbuf.append((char)33); // 33 values follow |
apspijkerman | 0:5b5830ede960 | 369 | serbuf.append((char)20); // dx=20 |
apspijkerman | 0:5b5830ede960 | 370 | serbuf.append((char) 0); // dy=0 .. so only y values |
apspijkerman | 0:5b5830ede960 | 371 | serbuf.append((char)60); // x start |
apspijkerman | 0:5b5830ede960 | 372 | serbuf.append((char) s); // y start |
apspijkerman | 0:5b5830ede960 | 373 | */ |
apspijkerman | 0:5b5830ede960 | 374 | stampdock.printf("!Pb"); |
apspijkerman | 0:5b5830ede960 | 375 | stampdock.printf("%c%c%c%c%c", 33, 20, 0, 60, s); |
apspijkerman | 0:5b5830ede960 | 376 | //stampdock.printf("%d%d%d%d%d", 33, 20, 0, 60, s); |
apspijkerman | 0:5b5830ede960 | 377 | |
apspijkerman | 0:5b5830ede960 | 378 | for (cnt = 0; cnt <= 28; cnt++){ |
apspijkerman | 0:5b5830ede960 | 379 | x = mem[ ptr ]; |
apspijkerman | 0:5b5830ede960 | 380 | x = 255 - x + PosA - 128; |
apspijkerman | 0:5b5830ede960 | 381 | ptr = ptr + 2; |
apspijkerman | 0:5b5830ede960 | 382 | |
apspijkerman | 0:5b5830ede960 | 383 | //'' --- slow line --- |
apspijkerman | 0:5b5830ede960 | 384 | //''val = cnt * 20 |
apspijkerman | 0:5b5830ede960 | 385 | //''DEBUG "!l",DEC val,",",DEC s,",", DEC val+20,",", DEC x,";" ' chars 18 |
apspijkerman | 0:5b5830ede960 | 386 | //'' --- faster line --- |
apspijkerman | 0:5b5830ede960 | 387 | //''val = cnt * 8 |
apspijkerman | 0:5b5830ede960 | 388 | //''DEBUG "!lb", 4 , val , s, val+8 , x , ";" 'chars 8 |
apspijkerman | 0:5b5830ede960 | 389 | //'' --- fastest line --- |
apspijkerman | 0:5b5830ede960 | 390 | //DEBUG x 'chars 1 (poly line cmd with constant dx) |
apspijkerman | 0:5b5830ede960 | 391 | |
apspijkerman | 0:5b5830ede960 | 392 | //System.out.print( "," ); |
apspijkerman | 0:5b5830ede960 | 393 | //System.out.print( x ); |
apspijkerman | 0:5b5830ede960 | 394 | |
apspijkerman | 0:5b5830ede960 | 395 | x -= 60; |
apspijkerman | 0:5b5830ede960 | 396 | // if (x > 127) x -= 256; // int to char ? |
apspijkerman | 0:5b5830ede960 | 397 | //serbuf.append((char) x ); // y value of next line |
apspijkerman | 0:5b5830ede960 | 398 | |
apspijkerman | 0:5b5830ede960 | 399 | //if (x < -128) x = -128; |
apspijkerman | 0:5b5830ede960 | 400 | //if (x > 127) x = 127; |
apspijkerman | 0:5b5830ede960 | 401 | //if (x < 0) x = 0; |
apspijkerman | 0:5b5830ede960 | 402 | //if (x > 255) x = 255; |
apspijkerman | 0:5b5830ede960 | 403 | stampdock.printf("%c", x ); // y value of next line |
apspijkerman | 0:5b5830ede960 | 404 | //stampdock.printf("%d.", x ); |
apspijkerman | 0:5b5830ede960 | 405 | //wait(0.01); |
apspijkerman | 0:5b5830ede960 | 406 | |
apspijkerman | 0:5b5830ede960 | 407 | //s = x; |
apspijkerman | 0:5b5830ede960 | 408 | } |
apspijkerman | 0:5b5830ede960 | 409 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 410 | //serbuf.append(";"); |
apspijkerman | 0:5b5830ede960 | 411 | //System.out.print(serbuf.toString()); |
apspijkerman | 0:5b5830ede960 | 412 | stampdock.printf(";"); |
apspijkerman | 0:5b5830ede960 | 413 | //stampdock.printf(" "); // flush ? |
apspijkerman | 0:5b5830ede960 | 414 | |
apspijkerman | 0:5b5830ede960 | 415 | } // end UseChanA |
apspijkerman | 0:5b5830ede960 | 416 | |
apspijkerman | 0:5b5830ede960 | 417 | if (UseChanB){ |
apspijkerman | 0:5b5830ede960 | 418 | //' draw channel b |
apspijkerman | 0:5b5830ede960 | 419 | //'set color white |
apspijkerman | 0:5b5830ede960 | 420 | //'DEBUG "!s255,255,255;" 'slow ascii way to set color |
apspijkerman | 0:5b5830ede960 | 421 | //DEBUG "!sb",3,255,255,255,";" 'fast binary way to set color |
apspijkerman | 0:5b5830ede960 | 422 | //System.out.print("!s255,255,255;"); |
apspijkerman | 0:5b5830ede960 | 423 | stampdock.SetColor(255,255,255); |
apspijkerman | 0:5b5830ede960 | 424 | |
apspijkerman | 0:5b5830ede960 | 425 | ptr = 1; |
apspijkerman | 0:5b5830ede960 | 426 | s = mem[ ptr ]; |
apspijkerman | 0:5b5830ede960 | 427 | s = 255 - s + PosB - 128; |
apspijkerman | 0:5b5830ede960 | 428 | ptr = ptr + 2; |
apspijkerman | 0:5b5830ede960 | 429 | s -= 60; |
apspijkerman | 0:5b5830ede960 | 430 | |
apspijkerman | 0:5b5830ede960 | 431 | //if (s < -128) s = -128; |
apspijkerman | 0:5b5830ede960 | 432 | //if (s > 127) s = 127; |
apspijkerman | 0:5b5830ede960 | 433 | // if (s < 0) s = 0; |
apspijkerman | 0:5b5830ede960 | 434 | //if (s > 255) s = 255; |
apspijkerman | 0:5b5830ede960 | 435 | |
apspijkerman | 0:5b5830ede960 | 436 | //DEBUG "!Pb", 33,20, 0,60 , s ' init poly line cmd in binary mode 38c |
apspijkerman | 0:5b5830ede960 | 437 | //' 33 is number of bytes we are going to send |
apspijkerman | 0:5b5830ede960 | 438 | //' 20=dx , 0=dy (which means we only send y values) |
apspijkerman | 0:5b5830ede960 | 439 | //' 0,60 = start x,y |
apspijkerman | 0:5b5830ede960 | 440 | |
apspijkerman | 0:5b5830ede960 | 441 | //System.out.print("!P20,0,60,"); |
apspijkerman | 0:5b5830ede960 | 442 | //System.out.print( s ); |
apspijkerman | 0:5b5830ede960 | 443 | /* |
apspijkerman | 0:5b5830ede960 | 444 | serbuf.clear(); |
apspijkerman | 0:5b5830ede960 | 445 | serbuf.append("!Pb"); |
apspijkerman | 0:5b5830ede960 | 446 | serbuf.append((char)33); |
apspijkerman | 0:5b5830ede960 | 447 | serbuf.append((char)20); |
apspijkerman | 0:5b5830ede960 | 448 | serbuf.append((char) 0); |
apspijkerman | 0:5b5830ede960 | 449 | serbuf.append((char)60); |
apspijkerman | 0:5b5830ede960 | 450 | serbuf.append((char) s); |
apspijkerman | 0:5b5830ede960 | 451 | */ |
apspijkerman | 0:5b5830ede960 | 452 | stampdock.printf("!Pb"); |
apspijkerman | 0:5b5830ede960 | 453 | stampdock.printf("%c%c%c%c%c", 33, 20, 0, 60, s ); |
apspijkerman | 0:5b5830ede960 | 454 | //stampdock.printf("%d%d%d%d%d", 33, 20, 0, 60, s ); |
apspijkerman | 0:5b5830ede960 | 455 | |
apspijkerman | 0:5b5830ede960 | 456 | for (cnt = 0; cnt <= 28; cnt++){ |
apspijkerman | 0:5b5830ede960 | 457 | x = mem[ ptr ]; |
apspijkerman | 0:5b5830ede960 | 458 | x = 255 - x + PosB - 128; |
apspijkerman | 0:5b5830ede960 | 459 | ptr = ptr + 2; |
apspijkerman | 0:5b5830ede960 | 460 | |
apspijkerman | 0:5b5830ede960 | 461 | //'' --- slow line --- |
apspijkerman | 0:5b5830ede960 | 462 | //''val = cnt * 20 |
apspijkerman | 0:5b5830ede960 | 463 | //''DEBUG "!l",DEC val,",",DEC s,",", DEC val+20,",", DEC x,";" |
apspijkerman | 0:5b5830ede960 | 464 | //'' --- faster line --- |
apspijkerman | 0:5b5830ede960 | 465 | //''val = cnt * 8 |
apspijkerman | 0:5b5830ede960 | 466 | //''DEBUG "!lb", 4 , val , s, val+8 , x , ";" |
apspijkerman | 0:5b5830ede960 | 467 | //'' --- fastest line --- |
apspijkerman | 0:5b5830ede960 | 468 | //DEBUG x 'chars 1 (poly line cmd with constant dx) |
apspijkerman | 0:5b5830ede960 | 469 | |
apspijkerman | 0:5b5830ede960 | 470 | //System.out.print( "," ); |
apspijkerman | 0:5b5830ede960 | 471 | //System.out.print( x ); |
apspijkerman | 0:5b5830ede960 | 472 | |
apspijkerman | 0:5b5830ede960 | 473 | x -= 60; |
apspijkerman | 0:5b5830ede960 | 474 | // if (x > 127) x -= 256; // int to char ? |
apspijkerman | 0:5b5830ede960 | 475 | //serbuf.append((char) x ); |
apspijkerman | 0:5b5830ede960 | 476 | |
apspijkerman | 0:5b5830ede960 | 477 | //if (x < -128) x = -128; |
apspijkerman | 0:5b5830ede960 | 478 | //if (x > 127) x = 127; |
apspijkerman | 0:5b5830ede960 | 479 | //if (x < 0) x = 0; |
apspijkerman | 0:5b5830ede960 | 480 | //if (x > 255) x = 255; |
apspijkerman | 0:5b5830ede960 | 481 | stampdock.printf("%c", x ); |
apspijkerman | 0:5b5830ede960 | 482 | //stampdock.printf("%d.", x ); |
apspijkerman | 0:5b5830ede960 | 483 | //wait(0.01); |
apspijkerman | 0:5b5830ede960 | 484 | |
apspijkerman | 0:5b5830ede960 | 485 | //s = x; |
apspijkerman | 0:5b5830ede960 | 486 | } |
apspijkerman | 0:5b5830ede960 | 487 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 488 | //serbuf.append(";"); |
apspijkerman | 0:5b5830ede960 | 489 | //System.out.print(serbuf.toString()); |
apspijkerman | 0:5b5830ede960 | 490 | stampdock.printf(";"); |
apspijkerman | 0:5b5830ede960 | 491 | //stampdock.printf(" "); // flush ? |
apspijkerman | 0:5b5830ede960 | 492 | |
apspijkerman | 0:5b5830ede960 | 493 | } // end UseChanB |
apspijkerman | 0:5b5830ede960 | 494 | |
apspijkerman | 0:5b5830ede960 | 495 | //CPU.delay(1); |
apspijkerman | 0:5b5830ede960 | 496 | } // end xt scope mode |
apspijkerman | 0:5b5830ede960 | 497 | |
apspijkerman | 0:5b5830ede960 | 498 | if (mode == 2){ // recorder mode |
apspijkerman | 0:5b5830ede960 | 499 | if (adc){ // ltc1298 mode |
apspijkerman | 0:5b5830ede960 | 500 | val = readadc(2,1,0, 0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 501 | valb = readadc(2,1,0, 1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 502 | }else{ |
apspijkerman | 0:5b5830ede960 | 503 | val = measure(0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 504 | valb = measure(1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 505 | } |
apspijkerman | 0:5b5830ede960 | 506 | |
apspijkerman | 0:5b5830ede960 | 507 | val = val + PosA - 128; // offset |
apspijkerman | 0:5b5830ede960 | 508 | valb = valb + PosB - 128; |
apspijkerman | 0:5b5830ede960 | 509 | |
apspijkerman | 0:5b5830ede960 | 510 | //' set plot color |
apspijkerman | 0:5b5830ede960 | 511 | //DEBUG "!s0,0,0;" |
apspijkerman | 0:5b5830ede960 | 512 | //System.out.print("!s0,0,0;"); |
apspijkerman | 0:5b5830ede960 | 513 | stampdock.SetColor(0,0,0); |
apspijkerman | 0:5b5830ede960 | 514 | |
apspijkerman | 0:5b5830ede960 | 515 | //' plot xy |
apspijkerman | 0:5b5830ede960 | 516 | //'DEBUG "!p", DEC 610,",", DEC val, ";" |
apspijkerman | 0:5b5830ede960 | 517 | //' line xy |
apspijkerman | 0:5b5830ede960 | 518 | //DEBUG "!l", DEC 610,",", DEC val,",", DEC 609,",", DEC pval ,";" |
apspijkerman | 0:5b5830ede960 | 519 | |
apspijkerman | 0:5b5830ede960 | 520 | //System.out.print("!l610,"); |
apspijkerman | 0:5b5830ede960 | 521 | //System.out.print( val ); |
apspijkerman | 0:5b5830ede960 | 522 | //System.out.print(",609,"); |
apspijkerman | 0:5b5830ede960 | 523 | //System.out.print( pval ); |
apspijkerman | 0:5b5830ede960 | 524 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 525 | stampdock.DrawLine(610,val,609,pval); |
apspijkerman | 0:5b5830ede960 | 526 | |
apspijkerman | 0:5b5830ede960 | 527 | pval = val; |
apspijkerman | 0:5b5830ede960 | 528 | |
apspijkerman | 0:5b5830ede960 | 529 | //' set plot color |
apspijkerman | 0:5b5830ede960 | 530 | //'DEBUG "!s250,250,250;" 'slow ascii way to set color |
apspijkerman | 0:5b5830ede960 | 531 | //DEBUG "!sb",3,250,250,250,";" 'fast binary way to set color |
apspijkerman | 0:5b5830ede960 | 532 | //System.out.print("!s250,250,250;"); |
apspijkerman | 0:5b5830ede960 | 533 | stampdock.SetColor(250,250,250); |
apspijkerman | 0:5b5830ede960 | 534 | |
apspijkerman | 0:5b5830ede960 | 535 | //' plot xy |
apspijkerman | 0:5b5830ede960 | 536 | //'DEBUG "!p", DEC 610,",", DEC valb, ";" |
apspijkerman | 0:5b5830ede960 | 537 | //' line xy |
apspijkerman | 0:5b5830ede960 | 538 | //DEBUG "!l", DEC 610,",", DEC valb,",", DEC 609,",", DEC pvalb ,";" |
apspijkerman | 0:5b5830ede960 | 539 | |
apspijkerman | 0:5b5830ede960 | 540 | //System.out.print("!l610,"); |
apspijkerman | 0:5b5830ede960 | 541 | //System.out.print( valb ); |
apspijkerman | 0:5b5830ede960 | 542 | //System.out.print(",609,"); |
apspijkerman | 0:5b5830ede960 | 543 | //System.out.print( pvalb ); |
apspijkerman | 0:5b5830ede960 | 544 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 545 | stampdock.DrawLine(610,valb,609,pvalb); |
apspijkerman | 0:5b5830ede960 | 546 | |
apspijkerman | 0:5b5830ede960 | 547 | pvalb = valb; |
apspijkerman | 0:5b5830ede960 | 548 | |
apspijkerman | 0:5b5830ede960 | 549 | // ' scrol 1 pixel to the left |
apspijkerman | 0:5b5830ede960 | 550 | //DEBUG "!G20,1;" |
apspijkerman | 0:5b5830ede960 | 551 | //System.out.print("!G20,1;"); |
apspijkerman | 0:5b5830ede960 | 552 | stampdock.printf("!G20,1;"); |
apspijkerman | 0:5b5830ede960 | 553 | } // end recorder mode |
apspijkerman | 0:5b5830ede960 | 554 | |
apspijkerman | 0:5b5830ede960 | 555 | if (mode == 1){ // xy scope mode |
apspijkerman | 0:5b5830ede960 | 556 | if (adc){ // ltc1298 mode |
apspijkerman | 0:5b5830ede960 | 557 | val = readadc(2,1,0, 0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 558 | valb = readadc(2,1,0, 1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 559 | }else{ |
apspijkerman | 0:5b5830ede960 | 560 | val = measure(0, ChanAMode ); |
apspijkerman | 0:5b5830ede960 | 561 | valb = measure(1, ChanBMode ); |
apspijkerman | 0:5b5830ede960 | 562 | } |
apspijkerman | 0:5b5830ede960 | 563 | |
apspijkerman | 0:5b5830ede960 | 564 | //' set plot color |
apspijkerman | 0:5b5830ede960 | 565 | //'DEBUG "!s200,200,200;" 'slow ascii way to set color |
apspijkerman | 0:5b5830ede960 | 566 | //DEBUG "!sb",3,200,200,200,";" //fast binary way to set color |
apspijkerman | 0:5b5830ede960 | 567 | //System.out.print("!s,200,200,200;"); |
apspijkerman | 0:5b5830ede960 | 568 | stampdock.SetColor(200,200,200); |
apspijkerman | 0:5b5830ede960 | 569 | |
apspijkerman | 0:5b5830ede960 | 570 | //' plot xy |
apspijkerman | 0:5b5830ede960 | 571 | //DEBUG "!p", DEC val,",", DEC valb, ";" |
apspijkerman | 0:5b5830ede960 | 572 | //System.out.print("!p"); |
apspijkerman | 0:5b5830ede960 | 573 | //System.out.print( val ); |
apspijkerman | 0:5b5830ede960 | 574 | //System.out.print(","); |
apspijkerman | 0:5b5830ede960 | 575 | //System.out.print( valb ); |
apspijkerman | 0:5b5830ede960 | 576 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 577 | stampdock.Plot(val,valb); |
apspijkerman | 0:5b5830ede960 | 578 | |
apspijkerman | 0:5b5830ede960 | 579 | //' line xy |
apspijkerman | 0:5b5830ede960 | 580 | //DEBUG "!l", DEC val,",", DEC valb,",", DEC pval,",",DEC pvalb, ";" |
apspijkerman | 0:5b5830ede960 | 581 | |
apspijkerman | 0:5b5830ede960 | 582 | //System.out.print("!l"); |
apspijkerman | 0:5b5830ede960 | 583 | //System.out.print( val ); |
apspijkerman | 0:5b5830ede960 | 584 | //System.out.print(","); |
apspijkerman | 0:5b5830ede960 | 585 | //System.out.print( valb ); |
apspijkerman | 0:5b5830ede960 | 586 | //System.out.print(","); |
apspijkerman | 0:5b5830ede960 | 587 | //System.out.print( pval ); |
apspijkerman | 0:5b5830ede960 | 588 | //System.out.print(","); |
apspijkerman | 0:5b5830ede960 | 589 | //System.out.print( pvalb ); |
apspijkerman | 0:5b5830ede960 | 590 | //System.out.print(";"); |
apspijkerman | 0:5b5830ede960 | 591 | stampdock.DrawLine(val, valb, pval, pvalb); |
apspijkerman | 0:5b5830ede960 | 592 | |
apspijkerman | 0:5b5830ede960 | 593 | pval = val; |
apspijkerman | 0:5b5830ede960 | 594 | pvalb = valb; |
apspijkerman | 0:5b5830ede960 | 595 | |
apspijkerman | 0:5b5830ede960 | 596 | cnt = cnt + 1; |
apspijkerman | 0:5b5830ede960 | 597 | if (cnt == 50){ |
apspijkerman | 0:5b5830ede960 | 598 | //stampdock.printf("#*"); // flush |
apspijkerman | 0:5b5830ede960 | 599 | //' clear graph |
apspijkerman | 0:5b5830ede960 | 600 | //'DEBUG "!s100,100,200;!c;" 'set blue color , clear screen 17c |
apspijkerman | 0:5b5830ede960 | 601 | //DEBUG "!sb",3, 100,100,200, ";!c;" 'fast binary way to set color 11c |
apspijkerman | 0:5b5830ede960 | 602 | //System.out.print("!s,100,100,200;!c;"); |
apspijkerman | 0:5b5830ede960 | 603 | stampdock.SetColor(100,100,200); |
apspijkerman | 0:5b5830ede960 | 604 | stampdock.ClearScreen(); |
apspijkerman | 0:5b5830ede960 | 605 | |
apspijkerman | 0:5b5830ede960 | 606 | cnt = 0; |
apspijkerman | 0:5b5830ede960 | 607 | } |
apspijkerman | 0:5b5830ede960 | 608 | |
apspijkerman | 0:5b5830ede960 | 609 | |
apspijkerman | 0:5b5830ede960 | 610 | } // end xy mode scope |
apspijkerman | 0:5b5830ede960 | 611 | |
apspijkerman | 0:5b5830ede960 | 612 | } // end while true |
apspijkerman | 0:5b5830ede960 | 613 | } // end main |
apspijkerman | 0:5b5830ede960 | 614 | |
apspijkerman | 0:5b5830ede960 | 615 | |
apspijkerman | 0:5b5830ede960 | 616 | |
apspijkerman | 0:5b5830ede960 | 617 | |
apspijkerman | 0:5b5830ede960 | 618 |