示例#1
0
unsigned short le(unsigned short address)
{
 unsigned short dado;
 I2C1_Start();
 I2C1_Wr(0xA0); //endereco disp + escrever
 I2C1_Wr(address); //aponta p/ endereco dado
 I2C1_Repeated_Start();
 I2C1_Wr(0xA1); //endereco disp + ler
 dado = I2C1_Rd(0u);//no acknowledge ?
 I2C1_Stop();
 return (dado);
}
示例#2
0
//Address reference
//https://electrosome.com/wp-content/uploads/2012/05/Time-Keeper-Registers.png
//https://electrosome.com/wp-content/uploads/2012/05/Reading-Data-from-DS1307.jpg
unsigned short read_ds1307(unsigned short address)
{
  unsigned short temp;
  I2C1_Start();
  I2C1_Wr(0xD0);
  I2C1_Wr(address);
  I2C1_Repeated_Start();
  I2C1_Wr(0xD1);
  temp = I2C1_Rd(0);
  I2C1_Stop();
  return(temp);
}
//***********************************************************
unsigned char MemRd(unsigned int address)
 {
  unsigned char data_m,Add_H,Add_L;
  Add_H=((address&0xff00)>>8);
  Add_L=(address&0x00FF);
  I2C1_Init(100000);
  I2C1_Start();
  I2C1_Wr(0xA0);
  I2C1_Wr(Add_H);
  I2C1_Wr(Add_L);
  I2C1_Repeated_Start();
  I2C1_Wr(0xA1);
  data_m = I2C1_Rd(0u);
  I2C1_Stop();
  return data_m;
 }//MemRd
示例#4
0
void Read_Time(unsigned char *sec, unsigned char *min, unsigned char *hr, unsigned char *week_day, unsigned char *day, unsigned char *mn, unsigned char *year) {
	I2C1_Start();
	I2C1_Wr(DEVICEID_DS1307);
	I2C1_Wr(0);
	I2C1_Repeated_Start();
	I2C1_Wr(0xD1);
	*sec =I2C1_Rd(1);
	*min =I2C1_Rd(1);
	*hr =I2C1_Rd(1);
	*week_day =I2C1_Rd(1);
	*day =I2C1_Rd(1);
	*mn =I2C1_Rd(1);
	*year =I2C1_Rd(0);
	I2C1_Stop();
}