YKNCT / YKNCT_I2C_lib

Dependents:   arim_AutoMachine

YKNCT_I2C.cpp

Committer:
Tom0108
Date:
2019-04-02
Revision:
1:67d5ea2ff6c1
Parent:
0:c555f844eb8d
Child:
2:f5faf991cd86

File content as of revision 1:67d5ea2ff6c1:

#include "YKNCT_I2C.h"

Y_I2C::Y_I2C(PinName sda, PinName scl) : i2c(sda, scl)
{
    i2c.frequency(100000);
}

void Y_I2C::Out(int address, char data)
{
    i2c.write(address<<1, &data, 1, false);
}

int Y_I2C::In(int address, int num)
{
    static char data=0;

    i2c.read(address<<1, &data, 1, false);

    return data>>num&1;
}

int Y_I2C::Adc(int address, int num)
{
    static char data[8]= {0};
    static int ad_data[4]= {0};

    i2c.read(address<<1, data, 8, false);

    for(int i=0; i<4; i++)
        ad_data[i]=(int16_t)data[i*2+1]<<8|data[i*2];

    return ad_data[num];
}