ajitnayak
Junior Member level 2
- Joined
- Feb 22, 2013
- Messages
- 21
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 1,447
View attachment RTC.zipDear all,
I am using Ds1307 with MSPg430 kit and Energia as IDE which work similar to Arduino IDE.When i connect RTC pin i.e sda and scl they seems working.when i removed the program get hangs. If connected back it starts working fine.
Please let me know whether this behavior is normal or abnormal for MSP kits.
I am using Ds1307 with MSPg430 kit and Energia as IDE which work similar to Arduino IDE.When i connect RTC pin i.e sda and scl they seems working.when i removed the program get hangs. If connected back it starts working fine.
Please let me know whether this behavior is normal or abnormal for MSP kits.
Code:
#include <Wire.h>
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int s ;
int m ;
int h;
int w;
int dd;
int mm;
int yy;
void setup(){
Wire.begin();
Serial.begin(9600);
setDateTime(); //MUST CONFIGURE IN FUNCTION
}
void loop(){
Serial.println("Welcome to MSP main program");
getdate();
printDate();
Serial.println("read data from RTC");
delay(1000);
Serial.println("leaving the main");
}
void setDateTime(){
byte second =45; //0-59
byte minu =11; //0-59
byte hour =13; //0-23
byte weekday=2;
byte monthDay =19; //1-31
byte month =3; //1-12
byte year =13; //0-99
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(second));
Wire.write(decToBcd(minu));
Wire.write(decToBcd(hour));
Wire.write(decToBcd(weekday));
Wire.write(decToBcd(monthDay));
Wire.write(decToBcd(month));
Wire.write(decToBcd(year));
Wire.write(zero); //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 getdate()
{
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS,7);
s = bcdToDec(Wire.read());
m = bcdToDec(Wire.read());
h = bcdToDec(Wire.read() & 0b111111); //24 hour time
w=bcdToDec(Wire.read());
dd= bcdToDec(Wire.read());
mm= bcdToDec(Wire.read());
yy = bcdToDec(Wire.read());
}
void printDate(){
Serial.print(dd);
Serial.print("/");
Serial.print(mm);
Serial.print("/");
Serial.print(yy);
Serial.print(" ");
Serial.print(h);
Serial.print(":");
Serial.print(m);
Serial.print(":");
Serial.println(s);
}