Quote:
Originally Posted by Bomberofdoom
|
The user-programmable PIC in the Robot Controller has 1024 bytes of EEPROM in it. Reading a byte from EEPROM is easy: set the address and read the value. Writing is a bit more complex: set the address, set the value, flip some control bits, wait a specific amount of time, flip some more bits, wait, flip, wait, done. Kevin Watson wrote a library that takes care of all the details behind the scene, so all you need to do is call the functions that read and write values. It keeps a buffer of requested data writes so you don't have to wait around for it to finish each time you want to change a value.
It might help if you consider EEPROM to be the equivalent of a data file on disk. You can make changes to it which will not disappear when the RC is powered down. Kevin's camera communication and servo tracking code uses EEPROM to store configuration values. The TechnoKats this year adapted and extended the idea to hold PID calibrations for the drivebase and arm, as well as the desired pan and tilt values for driving to the target light. Instead of changing
#defines in the code, recompiling, and downloading every time we want to modify a value, we just use a menu-driven system to change the numbers directly on the robot.