| ??? 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 |



