Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@3:7f4b42e1b3e2, 2012-10-03 (annotated)
- Committer:
 - liangzhen
 - Date:
 - Wed Oct 03 21:03:54 2012 +0000
 - Revision:
 - 3:7f4b42e1b3e2
 - Parent:
 - 2:152e0a3ec192
 
modified leakage integration time limit
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| liangzhen | 0:2a52ec2fb0e0 | 1 | //slave | 
| liangzhen | 0:2a52ec2fb0e0 | 2 | //note: main() function is at the bottom | 
| liangzhen | 0:2a52ec2fb0e0 | 3 | #include <mbed.h> | 
| liangzhen | 0:2a52ec2fb0e0 | 4 | #include <sstream> | 
| liangzhen | 0:2a52ec2fb0e0 | 5 | using namespace std; | 
| liangzhen | 0:2a52ec2fb0e0 | 6 | |
| liangzhen | 0:2a52ec2fb0e0 | 7 | I2CSlave slave(p9, p10); | 
| liangzhen | 0:2a52ec2fb0e0 | 8 | DigitalOut led1(LED1); | 
| liangzhen | 0:2a52ec2fb0e0 | 9 | DigitalOut led2(LED2); | 
| liangzhen | 0:2a52ec2fb0e0 | 10 | DigitalOut led3(LED3); | 
| liangzhen | 0:2a52ec2fb0e0 | 11 | DigitalOut led4(LED4); | 
| liangzhen | 0:2a52ec2fb0e0 | 12 | Serial pc(USBTX, USBRX); | 
| liangzhen | 0:2a52ec2fb0e0 | 13 | |
| liangzhen | 0:2a52ec2fb0e0 | 14 | Ticker CLK; | 
| liangzhen | 0:2a52ec2fb0e0 | 15 | |
| liangzhen | 0:2a52ec2fb0e0 | 16 | DigitalOut leakage_enable(p15); | 
| liangzhen | 0:2a52ec2fb0e0 | 17 | AnalogIn leakage1(p17); | 
| liangzhen | 0:2a52ec2fb0e0 | 18 | AnalogIn leakage2(p18); | 
| liangzhen | 0:2a52ec2fb0e0 | 19 | |
| liangzhen | 0:2a52ec2fb0e0 | 20 | DigitalOut ref_clk(p5); | 
| liangzhen | 0:2a52ec2fb0e0 | 21 | DigitalOut count(p6); | 
| liangzhen | 0:2a52ec2fb0e0 | 22 | DigitalOut read(p7); | 
| liangzhen | 0:2a52ec2fb0e0 | 23 | DigitalOut enable(p8); | 
| liangzhen | 0:2a52ec2fb0e0 | 24 | DigitalOut S0(p11); | 
| liangzhen | 0:2a52ec2fb0e0 | 25 | DigitalOut S1(p12); | 
| liangzhen | 0:2a52ec2fb0e0 | 26 | DigitalOut S2(p13); | 
| liangzhen | 0:2a52ec2fb0e0 | 27 | DigitalOut S3(p14); | 
| liangzhen | 0:2a52ec2fb0e0 | 28 | DigitalOut S4(p22); | 
| liangzhen | 0:2a52ec2fb0e0 | 29 | DigitalOut S5(p21); | 
| liangzhen | 0:2a52ec2fb0e0 | 30 | DigitalOut OS(p16); | 
| liangzhen | 0:2a52ec2fb0e0 | 31 | DigitalIn O0(p23); | 
| liangzhen | 0:2a52ec2fb0e0 | 32 | DigitalIn O1(p24); | 
| liangzhen | 0:2a52ec2fb0e0 | 33 | DigitalIn O2(p25); | 
| liangzhen | 0:2a52ec2fb0e0 | 34 | DigitalIn O3(p29); | 
| liangzhen | 0:2a52ec2fb0e0 | 35 | DigitalIn O4(p28); | 
| liangzhen | 0:2a52ec2fb0e0 | 36 | DigitalIn O5(p27); | 
| liangzhen | 0:2a52ec2fb0e0 | 37 | DigitalIn O6(p26); | 
| liangzhen | 0:2a52ec2fb0e0 | 38 | DigitalIn O7(p30); | 
| liangzhen | 0:2a52ec2fb0e0 | 39 | AnalogIn core(p19); | 
| liangzhen | 0:2a52ec2fb0e0 | 40 | AnalogIn sram(p20); | 
| liangzhen | 0:2a52ec2fb0e0 | 41 | |
| liangzhen | 0:2a52ec2fb0e0 | 42 | char buf[50] = {}; | 
| liangzhen | 0:2a52ec2fb0e0 | 43 | char msg[] = "Slave!"; | 
| liangzhen | 0:2a52ec2fb0e0 | 44 | const int SLAVEADDR = 0x88; // define the I2C Slave Address (mbed 2) | 
| liangzhen | 0:2a52ec2fb0e0 | 45 | |
| liangzhen | 0:2a52ec2fb0e0 | 46 | void clk_gen() | 
| liangzhen | 0:2a52ec2fb0e0 | 47 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 48 | ref_clk = !ref_clk; | 
| liangzhen | 0:2a52ec2fb0e0 | 49 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 50 | |
| liangzhen | 0:2a52ec2fb0e0 | 51 | void assign_s(int selection) | 
| liangzhen | 0:2a52ec2fb0e0 | 52 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 53 | int remainder = selection; | 
| liangzhen | 0:2a52ec2fb0e0 | 54 | S0 = selection % 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 55 | selection = selection / 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 56 | S1 = selection % 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 57 | selection = selection / 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 58 | S2 = selection % 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 59 | selection = selection / 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 60 | S3 = selection % 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 61 | selection = selection / 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 62 | S4 = selection % 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 63 | selection = selection / 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 64 | S5 = selection % 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 65 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 66 | |
| liangzhen | 0:2a52ec2fb0e0 | 67 | unsigned int read_out() | 
| liangzhen | 0:2a52ec2fb0e0 | 68 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 69 | unsigned int out; | 
| liangzhen | 0:2a52ec2fb0e0 | 70 | out = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 71 | OS = 1; | 
| liangzhen | 0:2a52ec2fb0e0 | 72 | wait(0.001); | 
| liangzhen | 0:2a52ec2fb0e0 | 73 | out += O7.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 74 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 75 | out += O6.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 76 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 77 | out += O5.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 78 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 79 | out += O4.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 80 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 81 | out += O3.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 82 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 83 | out += O2.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 84 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 85 | out += O1.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 86 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 87 | out += O0.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 88 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 89 | OS = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 90 | wait(0.001); | 
| liangzhen | 0:2a52ec2fb0e0 | 91 | out += O7.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 92 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 93 | out += O6.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 94 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 95 | out += O5.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 96 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 97 | out += O4.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 98 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 99 | out += O3.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 100 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 101 | out += O2.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 102 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 103 | out += O1.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 104 | out *= 2; | 
| liangzhen | 0:2a52ec2fb0e0 | 105 | out += O0.read(); | 
| liangzhen | 0:2a52ec2fb0e0 | 106 | return out; | 
| liangzhen | 0:2a52ec2fb0e0 | 107 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 108 | |
| liangzhen | 0:2a52ec2fb0e0 | 109 | void scan_slave(char* ro_data) | 
| liangzhen | 0:2a52ec2fb0e0 | 110 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 111 | pc.printf("Testing Starts here\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 112 | O0.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 113 | O1.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 114 | O2.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 115 | O3.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 116 | O4.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 117 | O5.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 118 | O6.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 119 | O7.mode(PullUp); | 
| liangzhen | 0:2a52ec2fb0e0 | 120 | |
| liangzhen | 0:2a52ec2fb0e0 | 121 | count = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 122 | read = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 123 | enable = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 124 | int i; | 
| liangzhen | 0:2a52ec2fb0e0 | 125 | |
| liangzhen | 0:2a52ec2fb0e0 | 126 | for (i=0; i<64; i++) { | 
| liangzhen | 0:2a52ec2fb0e0 | 127 | //measure using 0.01 | 
| liangzhen | 0:2a52ec2fb0e0 | 128 | CLK.detach(); | 
| liangzhen | 0:2a52ec2fb0e0 | 129 | CLK.attach(&clk_gen, 0.01); | 
| liangzhen | 0:2a52ec2fb0e0 | 130 | int select = i; | 
| liangzhen | 0:2a52ec2fb0e0 | 131 | enable = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 132 | count = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 133 | read = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 134 | assign_s(select); | 
| liangzhen | 0:2a52ec2fb0e0 | 135 | wait_us(100); | 
| liangzhen | 0:2a52ec2fb0e0 | 136 | enable = 1; | 
| liangzhen | 0:2a52ec2fb0e0 | 137 | wait_us(100); | 
| liangzhen | 0:2a52ec2fb0e0 | 138 | count = 1; | 
| liangzhen | 0:2a52ec2fb0e0 | 139 | wait_us(100); | 
| liangzhen | 0:2a52ec2fb0e0 | 140 | count = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 141 | wait(0.2); | 
| liangzhen | 0:2a52ec2fb0e0 | 142 | read = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 143 | wait_us(100); | 
| liangzhen | 0:2a52ec2fb0e0 | 144 | read = 1; | 
| liangzhen | 0:2a52ec2fb0e0 | 145 | wait_us(100); | 
| liangzhen | 0:2a52ec2fb0e0 | 146 | read = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 147 | enable = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 148 | unsigned int out; | 
| liangzhen | 0:2a52ec2fb0e0 | 149 | out = read_out(); | 
| liangzhen | 0:2a52ec2fb0e0 | 150 | ro_data[5*i] = (char)(out%10+48); | 
| liangzhen | 0:2a52ec2fb0e0 | 151 | out = out / 10; | 
| liangzhen | 0:2a52ec2fb0e0 | 152 | ro_data[5*i+1] = (char)(out%10+48); | 
| liangzhen | 0:2a52ec2fb0e0 | 153 | out = out / 10; | 
| liangzhen | 0:2a52ec2fb0e0 | 154 | ro_data[5*i+2] = (char)(out%10+48); | 
| liangzhen | 0:2a52ec2fb0e0 | 155 | out = out / 10; | 
| liangzhen | 0:2a52ec2fb0e0 | 156 | ro_data[5*i+3] = (char)(out%10+48); | 
| liangzhen | 0:2a52ec2fb0e0 | 157 | out = out / 10; | 
| liangzhen | 0:2a52ec2fb0e0 | 158 | ro_data[5*i+4] = (char)(out%10+48); | 
| liangzhen | 0:2a52ec2fb0e0 | 159 | CLK.detach(); | 
| liangzhen | 0:2a52ec2fb0e0 | 160 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 161 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 162 | |
| liangzhen | 0:2a52ec2fb0e0 | 163 | void read_power(char* ro_data) | 
| liangzhen | 0:2a52ec2fb0e0 | 164 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 165 | unsigned short core_reading = core.read_u16(); | 
| liangzhen | 0:2a52ec2fb0e0 | 166 | unsigned short sram_reading = sram.read_u16(); | 
| liangzhen | 0:2a52ec2fb0e0 | 167 | ro_data[64*5] = (core_reading%0x100); | 
| liangzhen | 0:2a52ec2fb0e0 | 168 | ro_data[64*5+1] = (core_reading/0x100); | 
| liangzhen | 0:2a52ec2fb0e0 | 169 | ro_data[64*5+2] = (sram_reading%0x100); | 
| liangzhen | 0:2a52ec2fb0e0 | 170 | ro_data[64*5+3] = (sram_reading/0x100); | 
| liangzhen | 0:2a52ec2fb0e0 | 171 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 172 | |
| liangzhen | 0:2a52ec2fb0e0 | 173 | void read_leakage(char* ro_data) | 
| liangzhen | 0:2a52ec2fb0e0 | 174 | { | 
| liangzhen | 2:152e0a3ec192 | 175 | double reading1; | 
| liangzhen | 0:2a52ec2fb0e0 | 176 | CLK.detach(); | 
| liangzhen | 0:2a52ec2fb0e0 | 177 | leakage_enable = 1; | 
| liangzhen | 1:90a2068dd130 | 178 | |
| liangzhen | 0:2a52ec2fb0e0 | 179 | S4 = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 180 | S5 = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 181 | ref_clk=0; | 
| liangzhen | 2:152e0a3ec192 | 182 | wait(0.01); | 
| liangzhen | 1:90a2068dd130 | 183 | |
| liangzhen | 2:152e0a3ec192 | 184 | int i0; | 
| liangzhen | 2:152e0a3ec192 | 185 | i0=0; | 
| liangzhen | 2:152e0a3ec192 | 186 | ref_clk = 1; | 
| liangzhen | 0:2a52ec2fb0e0 | 187 | S5 = 1; | 
| liangzhen | 2:152e0a3ec192 | 188 | do { | 
| liangzhen | 2:152e0a3ec192 | 189 | i0++; | 
| liangzhen | 3:7f4b42e1b3e2 | 190 | if(i0>10000) { | 
| liangzhen | 2:152e0a3ec192 | 191 | break; | 
| liangzhen | 2:152e0a3ec192 | 192 | } | 
| liangzhen | 2:152e0a3ec192 | 193 | wait(0.001); | 
| liangzhen | 2:152e0a3ec192 | 194 | reading1 = leakage1.read(); | 
| liangzhen | 2:152e0a3ec192 | 195 | reading1 *= 3.3; | 
| liangzhen | 2:152e0a3ec192 | 196 | } while (reading1 >0.01); | 
| liangzhen | 2:152e0a3ec192 | 197 | ref_clk = 0; | 
| liangzhen | 2:152e0a3ec192 | 198 | S5 = 0; | 
| liangzhen | 2:152e0a3ec192 | 199 | wait(0.01); | 
| liangzhen | 1:90a2068dd130 | 200 | |
| liangzhen | 2:152e0a3ec192 | 201 | ro_data[64*5+4] = (i0%0x100); | 
| liangzhen | 2:152e0a3ec192 | 202 | ro_data[64*5+5] = (i0/0x100); | 
| liangzhen | 1:90a2068dd130 | 203 | |
| liangzhen | 0:2a52ec2fb0e0 | 204 | S4 = 1; | 
| liangzhen | 2:152e0a3ec192 | 205 | wait(0.01); | 
| liangzhen | 2:152e0a3ec192 | 206 | i0=0; | 
| liangzhen | 2:152e0a3ec192 | 207 | ref_clk = 1; | 
| liangzhen | 2:152e0a3ec192 | 208 | S5 = 1; | 
| liangzhen | 2:152e0a3ec192 | 209 | do { | 
| liangzhen | 2:152e0a3ec192 | 210 | i0++; | 
| liangzhen | 3:7f4b42e1b3e2 | 211 | if(i0>10000) { | 
| liangzhen | 2:152e0a3ec192 | 212 | break; | 
| liangzhen | 2:152e0a3ec192 | 213 | } | 
| liangzhen | 2:152e0a3ec192 | 214 | wait(0.001); | 
| liangzhen | 2:152e0a3ec192 | 215 | reading1 = leakage2.read(); | 
| liangzhen | 2:152e0a3ec192 | 216 | reading1 *= 3.3; | 
| liangzhen | 2:152e0a3ec192 | 217 | } while (reading1 <3.29); | 
| liangzhen | 2:152e0a3ec192 | 218 | ref_clk = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 219 | S5 = 0; | 
| liangzhen | 1:90a2068dd130 | 220 | wait(0.1); | 
| liangzhen | 2:152e0a3ec192 | 221 | ro_data[64*5+6] = (i0%0x100); | 
| liangzhen | 2:152e0a3ec192 | 222 | ro_data[64*5+7] = (i0/0x100); | 
| liangzhen | 2:152e0a3ec192 | 223 | |
| liangzhen | 0:2a52ec2fb0e0 | 224 | leakage_enable = 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 225 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 226 | |
| liangzhen | 0:2a52ec2fb0e0 | 227 | void scan_test() | 
| liangzhen | 0:2a52ec2fb0e0 | 228 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 229 | slave.address(SLAVEADDR); | 
| liangzhen | 0:2a52ec2fb0e0 | 230 | char* ro_data; | 
| liangzhen | 2:152e0a3ec192 | 231 | ro_data = new char[64*5+8]; | 
| liangzhen | 0:2a52ec2fb0e0 | 232 | bool if_ready = false; | 
| liangzhen | 0:2a52ec2fb0e0 | 233 | while (1) { | 
| liangzhen | 0:2a52ec2fb0e0 | 234 | int i = slave.receive(); | 
| liangzhen | 0:2a52ec2fb0e0 | 235 | //pc.printf("receive = %i\r\n", i); | 
| liangzhen | 0:2a52ec2fb0e0 | 236 | switch (i) { | 
| liangzhen | 0:2a52ec2fb0e0 | 237 | case I2CSlave::ReadAddressed: | 
| liangzhen | 0:2a52ec2fb0e0 | 238 | if (!if_ready) { | 
| liangzhen | 0:2a52ec2fb0e0 | 239 | pc.printf("Slave is not ready...\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 240 | break; | 
| liangzhen | 0:2a52ec2fb0e0 | 241 | } | 
| liangzhen | 2:152e0a3ec192 | 242 | slave.write(ro_data, 64*5+8); | 
| liangzhen | 0:2a52ec2fb0e0 | 243 | pc.printf("Slave is writing..\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 244 | break; | 
| liangzhen | 0:2a52ec2fb0e0 | 245 | case I2CSlave::WriteGeneral: | 
| liangzhen | 0:2a52ec2fb0e0 | 246 | led2 = !led2; | 
| liangzhen | 0:2a52ec2fb0e0 | 247 | break; | 
| liangzhen | 0:2a52ec2fb0e0 | 248 | case I2CSlave::WriteAddressed: | 
| liangzhen | 0:2a52ec2fb0e0 | 249 | slave.read(buf, 4); | 
| liangzhen | 0:2a52ec2fb0e0 | 250 | pc.printf("Slave gets: %s\n", buf); | 
| liangzhen | 0:2a52ec2fb0e0 | 251 | led3 = !led3; | 
| liangzhen | 0:2a52ec2fb0e0 | 252 | char cmd1[] = "scan"; | 
| liangzhen | 0:2a52ec2fb0e0 | 253 | char cmd2[] = "getp"; | 
| liangzhen | 0:2a52ec2fb0e0 | 254 | char cmd3[] = "getl"; | 
| liangzhen | 0:2a52ec2fb0e0 | 255 | if (!strcmp(cmd1, buf)) { | 
| liangzhen | 0:2a52ec2fb0e0 | 256 | pc.printf("Scanning....\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 257 | scan_slave(ro_data); | 
| liangzhen | 0:2a52ec2fb0e0 | 258 | read_power(ro_data); | 
| liangzhen | 0:2a52ec2fb0e0 | 259 | read_leakage(ro_data); | 
| liangzhen | 0:2a52ec2fb0e0 | 260 | if_ready = true; | 
| liangzhen | 0:2a52ec2fb0e0 | 261 | } else if (!strcmp(cmd2, buf)) { | 
| liangzhen | 0:2a52ec2fb0e0 | 262 | pc.printf("Measuring power....\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 263 | read_power(ro_data); | 
| liangzhen | 0:2a52ec2fb0e0 | 264 | } else if (!strcmp(cmd3, buf)) { | 
| liangzhen | 0:2a52ec2fb0e0 | 265 | pc.printf("Measuring leakage.....\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 266 | read_leakage(ro_data); | 
| liangzhen | 0:2a52ec2fb0e0 | 267 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 268 | break; | 
| liangzhen | 0:2a52ec2fb0e0 | 269 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 270 | for (int i = 0; i < 50; i++) buf[i] = 0; // Clear buffer | 
| liangzhen | 0:2a52ec2fb0e0 | 271 | wait(0.002); | 
| liangzhen | 0:2a52ec2fb0e0 | 272 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 273 | } | 
| liangzhen | 0:2a52ec2fb0e0 | 274 | |
| liangzhen | 0:2a52ec2fb0e0 | 275 | |
| liangzhen | 0:2a52ec2fb0e0 | 276 | //// MAIN FUNCTION | 
| liangzhen | 0:2a52ec2fb0e0 | 277 | int main () | 
| liangzhen | 0:2a52ec2fb0e0 | 278 | { | 
| liangzhen | 0:2a52ec2fb0e0 | 279 | //scan_slave(); //main() function from the original DDRO_scan code | 
| liangzhen | 0:2a52ec2fb0e0 | 280 | pc.printf("SlaveMBED starts...\n"); | 
| liangzhen | 0:2a52ec2fb0e0 | 281 | scan_test(); | 
| liangzhen | 0:2a52ec2fb0e0 | 282 | |
| liangzhen | 0:2a52ec2fb0e0 | 283 | return 0; | 
| liangzhen | 0:2a52ec2fb0e0 | 284 | } |