Kim Youngsik / Mbed 2 deprecated 0ROBOFRIEN_FCC_v1_12

Dependencies:   mbed BufferedSerial ConfigFile

Committer:
skyyoungsik
Date:
Wed Nov 28 13:06:23 2018 +0000
Revision:
1:9530746906b6
Parent:
0:3473b92e991e
test1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
skyyoungsik 1:9530746906b6 1 #define eeprom_length 255
skyyoungsik 0:3473b92e991e 2
skyyoungsik 0:3473b92e991e 3
skyyoungsik 0:3473b92e991e 4 LocalFileSystem local("local"); // Create the local filesystem under the name "local"
skyyoungsik 0:3473b92e991e 5
skyyoungsik 0:3473b92e991e 6 volatile int eeprom_address[eeprom_length],eeprom_data[eeprom_length];
skyyoungsik 0:3473b92e991e 7 void eeprom_init(){
skyyoungsik 1:9530746906b6 8 int eeprom_chksum;
skyyoungsik 0:3473b92e991e 9 FILE *file = fopen("/local/eeprom.txt", "r"); // Open "out.txt" on the local file system for writing
skyyoungsik 0:3473b92e991e 10 if(file == NULL){
skyyoungsik 0:3473b92e991e 11 FILE *file = fopen("/local/eeprom.txt", "w"); // Write "out.txt ~~//
skyyoungsik 0:3473b92e991e 12 for(int i=0; i<eeprom_length; i++){
skyyoungsik 0:3473b92e991e 13 fprintf(file, "%d\t%d\r\n", i, 0);
skyyoungsik 1:9530746906b6 14 wait(0.0001);
skyyoungsik 0:3473b92e991e 15 }
skyyoungsik 0:3473b92e991e 16 }else{
skyyoungsik 0:3473b92e991e 17 for(int i=0; i<eeprom_length; i++) {eeprom_address[i] = 0; eeprom_data[i] = 0; }
skyyoungsik 0:3473b92e991e 18 for(int i=0; i<eeprom_length; i++){
skyyoungsik 0:3473b92e991e 19 fscanf(file,"%d\t%d\r\n",&eeprom_address[i], &eeprom_data[i]);
skyyoungsik 1:9530746906b6 20 wait(0.0001);
skyyoungsik 1:9530746906b6 21 }
skyyoungsik 1:9530746906b6 22 int tmp;
skyyoungsik 1:9530746906b6 23 fscanf(file,"%d\t%d\t\n",&tmp, &eeprom_chksum);
skyyoungsik 0:3473b92e991e 24 }
skyyoungsik 0:3473b92e991e 25 fclose(file);
skyyoungsik 1:9530746906b6 26 int cal_eeprom_chksum = 0;
skyyoungsik 1:9530746906b6 27 for(int i=0; i<eeprom_length; i++){
skyyoungsik 1:9530746906b6 28 cal_eeprom_chksum += eeprom_data[i];
skyyoungsik 1:9530746906b6 29 }
skyyoungsik 1:9530746906b6 30 if( cal_eeprom_chksum != eeprom_chksum){
skyyoungsik 1:9530746906b6 31 while(1){
skyyoungsik 1:9530746906b6 32 DigitalOut myled1(LED1);
skyyoungsik 1:9530746906b6 33 DigitalOut myled2(LED2);
skyyoungsik 1:9530746906b6 34 DigitalOut myled3(LED3);
skyyoungsik 1:9530746906b6 35 DigitalOut myled4(LED4);
skyyoungsik 1:9530746906b6 36 myled1 = 1; myled2 = 1; myled3 = 1; myled4 = 1;
skyyoungsik 1:9530746906b6 37 wait(1);
skyyoungsik 1:9530746906b6 38 myled1 = 0; myled2 = 0; myled3 = 0; myled4 = 0;
skyyoungsik 1:9530746906b6 39 wait(1);
skyyoungsik 1:9530746906b6 40 }
skyyoungsik 1:9530746906b6 41 }
skyyoungsik 0:3473b92e991e 42 }
skyyoungsik 0:3473b92e991e 43
skyyoungsik 1:9530746906b6 44 bool eeprom_refresh(){
skyyoungsik 0:3473b92e991e 45 /// Write Data to EEPROM //
skyyoungsik 1:9530746906b6 46 bool OUTPUT_VALUE = false;
skyyoungsik 1:9530746906b6 47 int eeprom_chksum = 0;
skyyoungsik 1:9530746906b6 48 __disable_irq();
skyyoungsik 0:3473b92e991e 49 FILE *file = fopen("/local/eeprom.txt", "w"); // Open "out.txt" on the local file system for writing
skyyoungsik 1:9530746906b6 50 // if(file != NULL){
skyyoungsik 1:9530746906b6 51 OUTPUT_VALUE = true;
skyyoungsik 1:9530746906b6 52 for(int i=0; i<eeprom_length; i++){
skyyoungsik 1:9530746906b6 53 fprintf(file,"%d\t%d\r\n",i, eeprom_data[i]);
skyyoungsik 1:9530746906b6 54 wait(0.0001);
skyyoungsik 1:9530746906b6 55 eeprom_chksum += eeprom_data[i];
skyyoungsik 1:9530746906b6 56 }
skyyoungsik 1:9530746906b6 57 fprintf(file,"%d\t%d",eeprom_length,eeprom_chksum);
skyyoungsik 1:9530746906b6 58 // }
skyyoungsik 1:9530746906b6 59 fclose(file);
skyyoungsik 1:9530746906b6 60 __enable_irq();
skyyoungsik 1:9530746906b6 61 return OUTPUT_VALUE;
skyyoungsik 0:3473b92e991e 62 }
skyyoungsik 0:3473b92e991e 63
skyyoungsik 0:3473b92e991e 64 void eeprom_write(int addr, int data){
skyyoungsik 0:3473b92e991e 65 /// Change Data //
skyyoungsik 0:3473b92e991e 66 eeprom_data[addr] = data;
skyyoungsik 0:3473b92e991e 67 }
skyyoungsik 0:3473b92e991e 68
skyyoungsik 0:3473b92e991e 69
skyyoungsik 0:3473b92e991e 70 int eeprom_read(int addr){
skyyoungsik 0:3473b92e991e 71 return eeprom_data[addr];
skyyoungsik 0:3473b92e991e 72
skyyoungsik 0:3473b92e991e 73 }
skyyoungsik 0:3473b92e991e 74