??? 08/26/08 06:42 Read: times |
#157756 - which RTC Responding to: ???'s previous message |
which type RTC(IIC or 3wire).
if IIC check this code. this code will work with DS1307 RTC IC ...void i2c_start() { sda=1;scl=1;sda=0; } void i2c_stop() { sda=0;sda=0;sda=0;scl=1;scl=1;sda=1; } void i2c_write(unsigned char d) { unsigned char i,d1=d; scl=0; for(i=1;i<=8;i++) { sda=(d>>7); scl=1; d=d<<1; scl=0; } sda=1; scl=0; scl=1; if(sda) { lcd_puts("ACK missing",0x80); lcd_putval(d1,0xC6,0); } scl=0; } unsigned char i2c_read(unsigned char b) { unsigned char d,i; sda=1; scl=0; for(i=1;i<=8;i++) { scl=1; d=d<<1; d=d | (unsigned char)sda; scl=0; } sda=b; scl=0; scl=1; if(b==nack) sda=1; scl=0; sda=1; return d; } unsigned char hex_bcd(unsigned char w) { char w1,w2,w3; if(w<10) { return w; } else { w1 = w%10; w2 = w/10; w3 = (w2*0x10)+w1; return (w3); } } unsigned char bcd_hex(unsigned char a) { char b,c,d; b = a & 0xF0; c = b; b >>=4; d = a & 0x0F; //out = ((c-(6*b))+d); return ((c-(6*b))+d); } void initialise() { i2c_start(); i2c_write(addrtc); i2c_write(0x00); i2c_write(0x00); i2c_stop(); i2c_start(); i2c_write(addrtc); i2c_write(0x00); i2c_write(0x00); i2c_write(0x00); i2c_write(0x00); //01010000 i2c_write(0x02); i2c_write(0x21); i2c_write(0x06); i2c_write(0x08); //#if defined DS1307 i2c_write(0x10); //#endif i2c_stop(); /* i2c_start(); i2c_write(0xA0); i2c_write(0x00); i2c_write(0x00); i2c_write(0x55); i2c_write(0x11); i2c_write(0x99); i2c_stop(); delayUs(50); */ } void rtc_read() { i2c_start(); i2c_write(addrtc); i2c_write(0x00); i2c_start(); i2c_write(addrtc|1); rsec=i2c_read(ack); rmin=i2c_read(ack); rhour=i2c_read(ack); rday=i2c_read(ack); rdate=i2c_read(ack); rmonth=i2c_read(ack); ryear=i2c_read(nack); // i2c_read(nack); i2c_stop(); if(tsec!=rsec && l==32) { tsec = rsec; d = 1; } } ... |
Topic | Author | Date |
How to design an hour meter using RTC and AT89C51 | 01/01/70 00:00 | |
bad description | 01/01/70 00:00 | |
Not all possible | 01/01/70 00:00 | |
why? | 01/01/70 00:00 | |
Common need | 01/01/70 00:00 | |
which RTC | 01/01/70 00:00 | |
Reading helps![]() | 01/01/70 00:00 |