Ejemplo n.º 1
0
Archivo: i2c.c Proyecto: richese/aeris
u8 i2cRead(u8  ack)
{
    u8  i;
    u8  caracter = 0x00;

    SetLowSCL();
    SetHighSDA();

    for (i=0; i<8; i++)
    {
        caracter = caracter << 1;
        SetHighSCL();

        if (I2C_GPIO->IDR&(1<<SDA))
            caracter = caracter  + 1;

        SetLowSCL();
    }

    if (ack)
    {
        SetLowSDA();
    }

    SetHighSCL();
    SetLowSCL();

    i2c_delay();

    return (caracter);
}
Ejemplo n.º 2
0
Archivo: i2c.c Proyecto: richese/aeris
int i2cWrite(u8 a)
{
    u8  i;
    u8  return_ack;

    for (i=0; i<8; i++)
    {
        SetLowSCL();

        if (a & 0x80)
            SetHighSDA();
        else
            SetLowSDA();

        SetHighSCL();
        a <<= 1;
    }

    SetLowSCL();
    SetHighSDA();
    SetHighSCL();


    if (I2C_GPIO->IDR&(1<<SDA))
        return_ack = NO_I2C_ACK;
    else
        return_ack = OK_I2C_ACK;

    SetLowSCL();

    i2c_delay();

    return(return_ack);
}
Ejemplo n.º 3
0
int CI2C::Write(uint8_t a)
{
    uint8_t  i;
    uint8_t  return_ack;

    for (i=0; i<8; i++)
    {
        SetLowSCL();

        if (a & 0x80)
            SetHighSDA();
        else
            SetLowSDA();

        SetHighSCL();
        a <<= 1;
    }

    SetLowSCL();
    SetHighSDA();
    SetHighSCL();


    if (I2C_GPIO->IDR&(1<<SDA))
        return_ack = NO_I2C_ACK;
    else
        return_ack = OK_I2C_ACK;

    SetLowSCL();

    delay();

    return(return_ack);
}
Ejemplo n.º 4
0
uint8_t CI2C::Read(uint8_t  ack)
{
    uint8_t  i;
    uint8_t  c = 0x00;

    SetLowSCL();

    for (i = 0; i < 8; i++)
    {
        c = c << 1;
        SetHighSCL();

        if (I2C_GPIO->IDR&(1<<SDA))
            c = c | 0x01;

        SetLowSCL();
    }


  	if(ack)
  	{
      SetLowSDA();
  	}
  	else
  	{
      SetHighSDA();
  	}

    SetHighSCL();
    SetLowSCL();

    SetHighSDA();

/*
   if (ack > 0)
   {
     //0
      SetLowSDA();
      SetHighSCL();
      SetLowSCL();
    //  SetHighSDA();

   }
   else
   {
     //1
     SetHighSDA();
     SetHighSCL();
     SetLowSCL();
  //   SetLowSDA();
   }
*/
  return (c);
}
Ejemplo n.º 5
0
Archivo: i2c.c Proyecto: richese/aeris
void i2cStop()
{
    SetLowSCL();
    SetLowSDA();

    SetHighSCL();
    SetLowSDA();

    SetHighSCL();
    SetHighSDA();
}
Ejemplo n.º 6
0
Archivo: i2c.c Proyecto: richese/aeris
void i2cStart()
{
    SetHighSCL();
    SetHighSDA();

    SetHighSCL();
    SetLowSDA();

    SetLowSCL();
    SetHighSDA();
}
Ejemplo n.º 7
0
void CI2C::Stop()
{
    SetLowSCL();
    SetLowSDA();

    SetHighSCL();
    SetLowSDA();

    SetHighSCL();
    SetHighSDA();
}