0720_Lab5

Dependencies:   eeprom mbed

Committer:
chinetion
Date:
Sat Nov 14 06:52:39 2015 +0000
Revision:
0:3ba1890a87e5
Finish;

Who changed what in which revision?

UserRevisionLine numberNew 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 }