Exemplo n.º 1
0
//*************************************************************************
//                          I2C_Send
//
// Inputs:
//         char Address  - Address to write data to
//         char *Data    - Pointer to buffer
//         char Num      - Number of bytes to send
//*************************************************************************
char I2C_Send(char Address,char *Data,char Num)
{
 i2cstart();

 //-- Send Address
 i2csendbyte(Address & 0xFE);   //-- Lowest bit = 0 => WRITE
 if(!i2cgetack())
 {
  i2cstop();
  return(0);
 }

 while(Num--)
 {
  i2csendbyte(*Data);
  if(!i2cgetack())
  {
   i2cstop();
   return(0);
  }
  Data++;
 }
 i2cstop();
 return(1);
}
Exemplo n.º 2
0
//*************************************************************************
//            char I2C_Read(char Address,char *data, char Num)
//*************************************************************************
char I2C_Read(char Address,char *Data, char Num)
{
 i2cstart();

 //-- Send Address
 i2csendbyte(Address | 0x01);   //-- Lowest bit = 1 => READ

 if(!i2cgetack())
 {
  i2cstop();
  return(0);
 }

 while(Num--)
 {
  *Data=i2cgetbyte();
  Data++;

  if(Num > 0)
  {
   i2csendack();
  }
 }
 i2cstop();
 return(1);

}
Exemplo n.º 3
0
//*************************************************************************
//                          I2C_Send
//
// Inputs:
//         char Address  - Address to write data to
//         char *Data    - Pointer to buffer
//         char Num      - Number of bytes to send
//*************************************************************************
char I2C_Send(char Address,char *Data,char Num)
{
 i2cstart();
 //-- Send Address
 i2csendbyte(Address & 0xFE);   //-- Lowest bit = 0 => WRITE
 if(!i2cgetack())
 {
  i2cstop();
	printf("DID NOT SEND INITIAL WRITE COMMAND PROPPERLY\r\n");
	//i2cdelay(10000000);
  return(0);
 }

 while(Num--)
 {
  i2csendbyte(*Data);
  if(!i2cgetack())
  {
   i2cstop();
	printf("HEX: 0x%x",*Data);
	printf("DID NOT SEND COMMAND PROPPERLY\r\n");
	//i2cdelay(10000000);
   return(0);
  }
  Data++;
 }
 i2cstop();
 i2cdelay(100);
 return(1);
}
Exemplo n.º 4
0
char I2C_Read_Delay(char Address,char *Data, char Num, DWORD countMs)
{
	i2cstart();

 //-- Send Address
 i2csendbyte(Address | 0x01);   //-- Lowest bit = 1 => READ

 if(!i2cgetack())
 {
  i2cstop();
	printf("ERROR IN SENDING READ CMD\n\r");
	//i2cdelay(10000000);
  return(0);
 }
	i2cdelay(countMs*1000); 

 while(Num--)
 {
  *Data=i2cgetbyte();
  printf("Got the data from byte %d, it's %x\r\n", Num, *Data);
	Data++;

  if(Num > 0)
  {
   i2csendack();
  }
	
 }
 i2cstop();
 return(1);

}
Exemplo n.º 5
0
void write_i(unsigned char ins)
{
	i2cstart();
	write_w(0x78);
	write_w(0x80);
	write_w(ins);
	i2cstop();
}
Exemplo n.º 6
0
void Display_Picture(unsigned char pic[])
{
	unsigned char i,j,num=0;
	for(i=0;i<0x04;i++)
	{
		Set_Page_Address(i);
		Set_Column_Address(0x00);

		i2cstart();
		write_w(0x78);

		write_w(0x40);
		for(j=0;j<0x40;j++)
		{
			write_w(pic[i*0x40+j]);
		}
		i2cstop();
	}
	return;
}