TOMB
/
0508_Lab5
0508_Lab5
Diff: main.cpp
- Revision:
- 0:25f0bf2e4247
diff -r 000000000000 -r 25f0bf2e4247 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Nov 14 11:24:59 2015 +0000 @@ -0,0 +1,70 @@ +// Lab 5 +// 8/11/2015 +#include "mbed.h" +#include "eeprom.h" + +EEPROM ee(I2C_SDA,I2C_SCL,0); +// PB_9(D14),PB_8(D15) +BusOut led(D4,D5,D6,A0,A1,A2,A3); +DigitalIn in1(D7),in2(D8),in3(D9),in4(D10),in5(D11),in6(D12),in7(D13); +DigitalIn sw(D2),mode(D3); + +int main() +{ + int8_t a=0,sum; + int8_t wc=0,rc=0; + while(1) + { + if(sw) + { + if(mode) //read + { + led=0; + if(rc<wc) + { + ee.read(rc,a); + wait_ms(1); + rc++; + led=a; + } + else + { + led=127; wait(0.2); + led=0; wait(0.2); + led=127; wait(0.2); + led=0; + rc=0; + ee.read(rc,a); + wait_ms(1); + rc++; + led=a; + } + } + else //write + { + if(wc>60||rc>60) + { + //warning data can be overflow + led=63; wait(1); + led=0; wait(1); + led=63; wait(1); + led=0; + //reset eeprom go to address 0 + wc=0; rc=0; + } + sum=0; + if(in1) sum+=1; + if(in2) sum+=2; + if(in3) sum+=4; + if(in4) sum+=8; + if(in5) sum+=16; + if(in6) sum+=32; + if(in7) sum+=64; + ee.write(wc,sum); //save + wait_ms(1); + wc++; + } + } + wait(0.2); + } +}