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.
Diff: main.cpp
- Revision:
- 2:152e0a3ec192
- Parent:
- 1:90a2068dd130
- Child:
- 3:7f4b42e1b3e2
diff -r 90a2068dd130 -r 152e0a3ec192 main.cpp
--- a/main.cpp Tue Oct 02 01:21:39 2012 +0000
+++ b/main.cpp Tue Oct 02 23:53:42 2012 +0000
@@ -172,180 +172,63 @@
void read_leakage(char* ro_data)
{
- double reading1, reading2;
+ double reading1;
CLK.detach();
leakage_enable = 1;
- /*
- S4 = 1;
- S5 = 0;
- ref_clk=0;
- wait(0.1);
- for(int i=0; i<100; i++) {
- ref_clk=0;
- wait(0.1);
- ref_clk=1;
- wait(0.002*i);
- ref_clk=0;
- reading1 = leakage1.read();
- reading1 *= 3.3;
- reading2 = leakage2.read();
- reading2 *= 3.3;
- pc.printf("00%d: %f %f\n",i, reading1, reading2);
- }
-
- S4 = 1;
- S5 = 1;
- ref_clk=0;
- wait(0.1);
- for(int i=0; i<100; i++) {
- ref_clk=0;
- wait(0.1);
- ref_clk=1;
- wait(0.002*i);
- ref_clk=0;
- reading1 = leakage1.read();
- reading1 *= 3.3;
- reading2 = leakage2.read();
- reading2 *= 3.3;
- pc.printf("10%d: %f %f\n",i, reading1, reading2);
- }
- */
- //
S4 = 0;
S5 = 0;
ref_clk=0;
- wait(0.1);
-
- ref_clk=1;
- wait_us(2000);
-
- ref_clk=0;
- wait_us(100);
-
- unsigned short RVTP=leakage1.read_u16();
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
+ wait(0.01);
- pc.printf("RVTP: %f \t %f\n", reading1, reading2);
- ref_clk=1;
- wait_us(10);
-
- ref_clk=0;
- wait_us(100);
-
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("RVTP: %f \t %f\n", reading1, reading2);
-
- //
- S4 = 0;
+ int i0;
+ i0=0;
+ ref_clk = 1;
S5 = 1;
- ref_clk=0;
- wait(0.1);
+ do {
+ i0++;
+ if(i0>1000) {
+ break;
+ }
+ wait(0.001);
+ reading1 = leakage1.read();
+ reading1 *= 3.3;
+ } while (reading1 >0.01);
+ ref_clk = 0;
+ S5 = 0;
+ wait(0.01);
- ref_clk=1;
- wait_us(2000);
-
- ref_clk=0;
- wait_us(100);
-
- unsigned short HVTP=leakage1.read_u16();
+ ro_data[64*5+4] = (i0%0x100);
+ ro_data[64*5+5] = (i0/0x100);
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("HVTP: %f \t %f\n", reading1, reading2);
- ref_clk=1;
- wait_us(10);
-
- ref_clk=0;
- wait_us(100);
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("HVTP: %f \t %f\n", reading1, reading2);
-
- //
S4 = 1;
+ wait(0.01);
+ i0=0;
+ ref_clk = 1;
+ S5 = 1;
+ do {
+ i0++;
+ if(i0>1000) {
+ break;
+ }
+ wait(0.001);
+ reading1 = leakage2.read();
+ reading1 *= 3.3;
+ } while (reading1 <3.29);
+ ref_clk = 0;
S5 = 0;
- ref_clk=0;
wait(0.1);
-
- ref_clk=1;
- wait_us(2000);
-
- ref_clk=0;
- wait_us(100);
-
- unsigned short RVTN=leakage2.read_u16();
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("RVTN: %f \t %f\n", reading1, reading2);
- ref_clk=1;
- wait_us(10);
-
- ref_clk=0;
- wait_us(100);
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("RVTN: %f \t %f\n", reading1, reading2);
-
- //
- S4 = 1;
- S5 = 1;
- ref_clk=0;
- wait(0.1);
-
- ref_clk=1;
- wait_us(2000);
-
- ref_clk=0;
- wait_us(100);
-
- unsigned short HVTN=leakage2.read_u16();
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("HVTN: %f \t %f\n", reading1, reading2);
- ref_clk=1;
- wait_us(10);
-
- ref_clk=0;
- wait_us(100);
- reading1 = leakage1.read();
- reading2 = leakage2.read();
- reading1 *= 3.3;
- reading2 *= 3.3;
- pc.printf("HVTN: %f \t %f\n", reading1, reading2);
+ ro_data[64*5+6] = (i0%0x100);
+ ro_data[64*5+7] = (i0/0x100);
+
leakage_enable = 0;
-
- ro_data[64*5+4] = (RVTP%0x100);
- ro_data[64*5+5] = (RVTP/0x100);
- ro_data[64*5+6] = (HVTP%0x100);
- ro_data[64*5+7] = (HVTP/0x100);
- ro_data[64*5+8] = (RVTN%0x100);
- ro_data[64*5+9] = (RVTN/0x100);
- ro_data[64*5+10] = (HVTN%0x100);
- ro_data[64*5+11] = (HVTN/0x100);
}
void scan_test()
{
slave.address(SLAVEADDR);
char* ro_data;
- ro_data = new char[64*5+12];
+ ro_data = new char[64*5+8];
bool if_ready = false;
while (1) {
int i = slave.receive();
@@ -356,7 +239,7 @@
pc.printf("Slave is not ready...\n");
break;
}
- slave.write(ro_data, 64*5+12);
+ slave.write(ro_data, 64*5+8);
pc.printf("Slave is writing..\n");
break;
case I2CSlave::WriteGeneral: