Hardware Reference
In-Depth Information
23 /
24
Read : [ S ] 0xB1 <regaddr> <rtcbuf[0]> . . . <rtcbuf[n−1]> [P]
25
/
26 static int
27 i2c_rd_rtc(ds1307_rtc_regs
rtc) {
28 struct i2c_rdwr_ioctl_data msgset;
29 struct i2c_msg iomsgs[2];
30 char zero = 0x00; /
Register 0x00
/
31
32 iomsgs[0].addr = 0x68; /
DS1307
/
33 iomsgs[0].flags = 0; /
Write
/
34 iomsgs[0].buf = &zero; /
Register 0x00
/
35 iomsgs[0].len = 1;
36
37 iomsgs[1].addr = 0x68; /
DS1307
/
38 iomsgs[1].flags = I2C_M_RD; /
Read
/
39 iomsgs[1].buf = (char
)rtc;
40 iomsgs[1].len = size of
rtc;
41
42 msgset.msgs=iomsgs;
43 msgset.nmsgs=2;
44
45 return ioctl(i2c_fd,I2C_RDWR,&msgset);
46 }
47
48 /
49
Main program :
50
/
51 int
52 main(int argc,char
argv) {
53 ds1307_rtc_regs rtc; /
∗∗
8 DS1307 Register Values
/
54 struct tm t0, t1; /
Unix date / time values
/
55 char
date_format = getenv("DS1307_FORMAT");
56 char dtbuf[256]; /
Formatted date/time
/
57 int rc; /
Return code
/
58
59 /
60
If no environment variable named DS1307_FORMAT, then
61
set a default date/time format.
62
/
63 if ( !date_format )
64 date_format = "%Y−%m−%d%H:%M:%S(%A)";
65
66 /
67
Initialize I2C and clear rtc and t1 structures:
68
/
69 i2c_init(node); /
Initialize for I2C
/
Search WWH ::




Custom Search