Vizic Technologies
/
EEPROM_SG2
EEPROM Demo - MBED + SmartGPU2 board
main.cpp
- Committer:
- emmanuelchio
- Date:
- 2013-07-10
- Revision:
- 0:1e62f3fc1154
- Child:
- 1:ccc3b08131c8
File content as of revision 0:1e62f3fc1154:
/**************************************************************************************/ /*SMARTGPU2 intelligent embedded graphics processor unit those examples are for use the SMARTGPU2 with the mbed microcontoller, just connect tx,rx,and reset Board: http://vizictechnologies.com/#/smart-gpu-2/4577779046 www.vizictechnologies.com Vizic Technologies copyright 2013 */ /**************************************************************************************/ /******************************************************** This simple sketch does the next: 1.- init/Clear EEPROM buffer with 0xFF - EEPROM buffer size is 2048 (2k) 2.- write data 10 times to EEPROM buffer "0123456789" 3.- compare EEPROM buffer contents with EEPROM PAGE0, if equal go to step 7, if not continue to step 4 4.- erase EEPROM PAGE0 5.- save current EEPROM buffer contents(100 x "0123456789") to EEPROM PAGE0 6.- compare again EEPROM buffer contents with EEPROM PAGE0 7.- show results on display 8.- end - once executed the above, remove power from SmartGPU and run sketch again, EEPROM contents will remain as they are non-volatile data ********************************************************/ #include "mbed.h" #include "SMARTGPU2.h" SMARTGPU2 lcd(TXPIN,RXPIN,RESETPIN); //create our object called "lcd" unsigned int row=10; /***************************************************/ /***************************************************/ void initializeSmartGPU2(void){ //Initialize SMARTGPU2 Board lcd.reset(); //physically reset SMARTGPU2 lcd.start(); //initialize the SMARTGPU2 processor } /***************************************************/ /***************************************************/ /***************************************************/ /***************************************************/ int main() { NUMBEROFBYTES charsPrinted; char data[]="0123456789"; unsigned int i=0; unsigned char result=0; initializeSmartGPU2(); //Init communication with SmartGPU2 board lcd.baudChange(BAUD7); //set a fast baud! for fast drawing //strings config lcd.setTextColour(GREEN); lcd.string(10,row,319,239,"EEPROM page open, read, write demo!",&charsPrinted); row+=30; lcd.string(10,row,319,239,"Performing procedure...",&charsPrinted); row+=30; //ONCE WE START USING EEPROM BUFFER WE CAN'T CALL OTHER SMARTGPU FUNCTIONS DIFFERENT THAN EEPROM 'E' FUNCTIONS, AS EEPROM BUFFER WILL BE DISCARDED IF SO //init/Clear EEPROM buffer with 0xFF values lcd.initClearEEPROMBuff(); //write data array 10 times to EEPROM buffer for(i=0; i < 10; i++){ lcd.writeEEPROMBuff(data, i*10, 10, &charsPrinted); } //verify contents - EEPROM buffer contents vs EEPROM PAGE0 lcd.compBuffToEEPROMPage(PAGE0, &result); //compare EEPROM buffer contents with EEPROM PAGE0 if(result == 1){ //if contents are equal - means that data was already written and its equal lcd.string(10,row,319,239,"EEPROM PAGE0 Contents were already equal...END",&charsPrinted); }else{ //if contents are different - erase PAGE0 and write EEPROM buffer into PAGE0 - This procedure will be executed only the veryfirst time //erase EEPROM PAGE0 lcd.eraseEEPROMPage(PAGE0); //save current EEPROM buffer contents(100 x "0123456789") to EEPROM PAGE0 lcd.saveBuffToEEPROMPage(PAGE0); //verify contents again - EEPROM buffer contents vs EEPROM PAGE0 lcd.compBuffToEEPROMPage(PAGE0, &result); //compare EEPROM buffer contents with EEPROM PAGE0 if(result == 1){ //if contents are equal lcd.string(10,row,319,239,"New EEPROM PAGE0 Contents are equal...END",&charsPrinted); }else{ //error lcd.string(10,row,319,239,"New EEPROM PAGE0 Contents differ...END",&charsPrinted); } } //loop forever while(1); }