Go Down

Topic: Interfacing Sparkfun RTC Module with Lilypad (Read 378 times) previous topic - next topic

CRAY-4 Linux

I am working on keeping time with this rtc module http://www.sparkfun.com/products/99 with a lilypad and this code isnt working for me
Code: [Select]
#include "Wire.h"
#define DS1307_ADDRESS 0x68

void setup(){
 Wire.begin();
 Serial.begin(9600);
 setDateTime(); //MUST CONFIGURE IN FUNCTION
}

void loop(){
 printDate();
 delay(1000);
}

void setDateTime(){

 byte second =      45; //0-59
 byte minute =      40; //0-59
 byte hour =        0; //0-23
 byte weekDay =     2; //1-7
 byte monthDay =    1; //1-31
 byte month =       3; //1-12
 byte year  =       11; //0-99

 Wire.beginTransmission(DS1307_ADDRESS);
 Wire.send(0); //stop Oscillator

 Wire.send(decToBcd(second));
 Wire.send(decToBcd(minute));
 Wire.send(decToBcd(hour));
 Wire.send(decToBcd(weekDay));
 Wire.send(decToBcd(monthDay));
 Wire.send(decToBcd(month));
 Wire.send(decToBcd(year));

 Wire.send(0); //start

 Wire.endTransmission();

}

byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
 return ( (val/10*16) + (val%10) );
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
 return ( (val/16*10) + (val%16) );
}

void printDate(){

 // Reset the register pointer
 Wire.beginTransmission(DS1307_ADDRESS);
 Wire.send(0);
 Wire.endTransmission();

 Wire.requestFrom(DS1307_ADDRESS, 7);

 int second = bcdToDec(Wire.receive());
 int minute = bcdToDec(Wire.receive());
 int hour = bcdToDec(Wire.receive() & 0b111111); //24 hour time
 int weekDay = bcdToDec(Wire.receive()); //0-6 -> sunday - Saturday
 int monthDay = bcdToDec(Wire.receive());
 int month = bcdToDec(Wire.receive());
 int year = bcdToDec(Wire.receive());

 //print the date EG   3/1/11 23:59:59
 Serial.print(month);
 Serial.print("/");
 Serial.print(monthDay);
 Serial.print("/");
 Serial.print(year);
 Serial.print(" ");
 Serial.print(hour);
 Serial.print(":");
 Serial.print(minute);
 Serial.print(":");
 Serial.println(second);

}


i have it hooked up to analog pins A4 and A5 and i am not quite familiar with the Wire library  :(

Go Up