TOMB
/
0720_Lab5
0720_Lab5
main.cpp@0:3ba1890a87e5, 2015-11-14 (annotated)
- Committer:
- chinetion
- Date:
- Sat Nov 14 06:52:39 2015 +0000
- Revision:
- 0:3ba1890a87e5
Finish;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chinetion | 0:3ba1890a87e5 | 1 | #include "mbed.h" |
chinetion | 0:3ba1890a87e5 | 2 | #include "eeprom.h" |
chinetion | 0:3ba1890a87e5 | 3 | |
chinetion | 0:3ba1890a87e5 | 4 | EEPROM rom(I2C_SDA,I2C_SCL,0); |
chinetion | 0:3ba1890a87e5 | 5 | BusOut led(D2,D3,D4,D5,D6,D7,D8); |
chinetion | 0:3ba1890a87e5 | 6 | BusIn sw(A5,A4,A3,A2,A1,A0,D9); |
chinetion | 0:3ba1890a87e5 | 7 | DigitalIn Ck(D10),Mode(D11); |
chinetion | 0:3ba1890a87e5 | 8 | |
chinetion | 0:3ba1890a87e5 | 9 | uint8_t write_address=0,read_address=0,size,data[]={}; |
chinetion | 0:3ba1890a87e5 | 10 | int main() { |
chinetion | 0:3ba1890a87e5 | 11 | while(1){ |
chinetion | 0:3ba1890a87e5 | 12 | |
chinetion | 0:3ba1890a87e5 | 13 | if(Ck.read()){ |
chinetion | 0:3ba1890a87e5 | 14 | if(Mode.read()){ //Write |
chinetion | 0:3ba1890a87e5 | 15 | if(read_address!=0){write_address=0;read_address=0;} |
chinetion | 0:3ba1890a87e5 | 16 | |
chinetion | 0:3ba1890a87e5 | 17 | rom.write(write_address,(uint8_t)sw.read()); |
chinetion | 0:3ba1890a87e5 | 18 | wait_ms(1); |
chinetion | 0:3ba1890a87e5 | 19 | printf("Write Mode Data = %d Address = %d\n",sw.read(),write_address); |
chinetion | 0:3ba1890a87e5 | 20 | |
chinetion | 0:3ba1890a87e5 | 21 | write_address++; |
chinetion | 0:3ba1890a87e5 | 22 | } |
chinetion | 0:3ba1890a87e5 | 23 | else{ //Read |
chinetion | 0:3ba1890a87e5 | 24 | if(write_address!=0){ |
chinetion | 0:3ba1890a87e5 | 25 | size=write_address-1; |
chinetion | 0:3ba1890a87e5 | 26 | read_address=0; |
chinetion | 0:3ba1890a87e5 | 27 | write_address=0; |
chinetion | 0:3ba1890a87e5 | 28 | } |
chinetion | 0:3ba1890a87e5 | 29 | if(read_address>size){read_address=size;} |
chinetion | 0:3ba1890a87e5 | 30 | rom.read(read_address,data,1); |
chinetion | 0:3ba1890a87e5 | 31 | led=data[0]; |
chinetion | 0:3ba1890a87e5 | 32 | printf("Read Mode Data = %d Address = %d \n",data[0],read_address); |
chinetion | 0:3ba1890a87e5 | 33 | |
chinetion | 0:3ba1890a87e5 | 34 | read_address++; |
chinetion | 0:3ba1890a87e5 | 35 | |
chinetion | 0:3ba1890a87e5 | 36 | |
chinetion | 0:3ba1890a87e5 | 37 | } |
chinetion | 0:3ba1890a87e5 | 38 | while(Ck.read()){} |
chinetion | 0:3ba1890a87e5 | 39 | wait(0.1); |
chinetion | 0:3ba1890a87e5 | 40 | } |
chinetion | 0:3ba1890a87e5 | 41 | } |
chinetion | 0:3ba1890a87e5 | 42 | } |