#include int i, data=0; int high = 0x00, low = 0x00; byte sec, sechigh=0, minute=0, minhigh=0, hour=0, hour10; char EEData1[] = "I am # 1"; char EEData2[] = "I am # 2"; void setup(void){ Wire.begin(); Serial.begin(9600); }//setup void loop(){ //COMPASS Wire.beginTransmission(B0100001); Wire.send(B01000001); Wire.endTransmission(); delay(10); Wire.requestFrom(B0100001,2); delay(10); if(Wire.available()>0){ high = Wire.receive(); low = Wire.receive(); for(i=0; i<8; i++){ if(bitRead(high, i) == 1) bitSet(data, i+8); else bitClear(data, i+8); if(bitRead(low, i) == 1) bitSet(data, i); else bitClear(data, i); }//for data = data/10; }//available Serial.print("Compass = "); Serial.println(data); //EEPROM #1 for(i=0; i<8; i++){ Wire.beginTransmission(B1010000); Wire.send(0); Wire.send(i); Wire.send(byte(EEData1[i])); Wire.endTransmission(); delay(5);} for(i=0; i<8; i++){ Wire.beginTransmission(B1010000); Wire.send(0); Wire.send(i); Wire.endTransmission(); Wire.requestFrom(B1010000,1); delay(5); Serial.print(char(Wire.receive())); } Serial.println(""); //EEPROM #2 for(i=0; i<8; i++){ Wire.beginTransmission(B1010001); Wire.send(0); Wire.send(i); Wire.send(byte(EEData2[i])); Wire.endTransmission(); delay(5);} for(i=0; i<8; i++){ Wire.beginTransmission(B1010001); Wire.send(0); Wire.send(i); Wire.endTransmission(); Wire.requestFrom(B1010001,1); delay(5); Serial.print(char(Wire.receive())); } Serial.println(""); settime(); gettime(); serialprinttime(); delay(1000); }//loop void serialprinttime(){// Print Time Serial Serial.print("seconds = "); Serial.print(sec, DEC); Serial.print(" minute = "); Serial.print(minute, DEC); Serial.print(" hour = "); Serial.print(hour10, DEC); Serial.println(hour, DEC); }// Print Time Serial void settime(){// SET TIME Wire.beginTransmission(B1101000); Wire.send(0x00); Wire.send(0x55);//sec Wire.send(0x59);//min Wire.send(B01101001);//HOUR Wire.endTransmission(); }// SET TIME void gettime(){// GET TIME Wire.beginTransmission(B1101000); Wire.send(0x00); Wire.endTransmission(); delay(10); Wire.requestFrom(B1101000,3); sec = Wire.receive(); minute = Wire.receive(); hour = Wire.receive(); sechigh=0; for(i=4; i<7; i++){ if(bitRead(sec, i)==1){ bitSet(sechigh, i-4); bitClear(sec, i); } }//for minhigh=0; for(i=4; i<7; i++){ if(bitRead(minute, i)==1){ bitSet(minhigh, i-4); bitClear(minute, i); } }//for hour10 = 0; if(bitRead(hour, 4) == 1) hour10 = 1; for(i=4; i<8; i++) bitClear(hour, i); sec = sec+(10*sechigh); minute = minute+(10*minhigh); }// GET TIME