Id-dar > Aħbarijiet > Il-kontenut

FT_Hal_I2C.cpp

May 06, 2019

/ * Dan il-fajl fih apis relatati ma 'i2c * /

/ * L-istandard jinkludi * /

#inkludi "FT_Platform.h"

#inkludi "..WireWire.h"

#if 0

#inkludi "FT_DataTypes.h"

#inkludi "FT_Gpu.h"

#ifdef ARDUINO_PLATFORM

#inkludi

#inkludi

#inkludi

#include

#inkludi

#endif

#endif

#inkludi "FT_Hal_I2C.h"


ft_int16_t hal_rtc_i2c_init ()

{

Wire.begin ();

ft_delay (100);

ritorn 0;

}


/ * api biex taqra n-bytes minn addr * /

ft_int16_t hal_rtc_i2c_read (ft_uint8_t addr, ft_uint8_t * bafer, ft_uint16_t tul)

{

ft_uint16_t i;

għadd qasir = 0;

ft_uint8_t writeResult = 0;

filwaqt li (tul> 28)

{

hal_rtc_i2c_read (addr, buffer, 28);

buffer + = 28;

addr + = 28;

it-tul - = 28;

}


Wire.beginTransmission (0x6f); // trasmessa lill-apparat (0x23)

/ * l-bytes tal-indirizz għar-RTK huma minn 00 sa 0xff * /

Wire.write (addr); // jibgħat byte tal-valur


/ * Ttemm it-trasmissjoni imma ma teħlisx il-linja tal-linja - l-użu huwa dejta każwali aqra l-każ tal-użu minn rtc * /

writeResult = Wire.endTransmission (falz); // żomm il-linja tal-linja biex taqra d-data li jmiss

jekk (0! = ir-riżultat tal-kitba)

{

return -1; // każ ta 'żball

}

Wire.requestFrom (0x6f, tul); // titlob it-tul tal-bytes mill-apparat tal-iskjavi u ttemm it-trasmissjoni wara dan

għal (i = 0; i

{

/ * hemm bżonn li tikkunsidra l-iskeda hawn * /

filwaqt li (0 == Wire.available ()); // jimblokka s-sejħa - mill-inqas byte wieħed għandu jkun disponibbli

buffer [i] = Wire.read ();

}

ritorn 0;

}

/ * API biex tikteb id-data f'post partikolari * /

ft_int16_t hal_rtc_i2c_write (ft_uint8_t addr, ft_uint8_t * bafer, ft_uint16_t tul)

{

ft_uint16_t i;

byte writeResult = 0;

jekk (0 == tul)

{

return -1;

}

/ * biex taqra l-bit l-iktar baxx għandu jkun issettjat għal 1 u għal kitba ssettjat għal 0 * /

Wire.beginTransmission (0x6f);


/ * l-bytes tal-indirizz għar-RTK huma minn 00 sa 0xff * /

Wire.write (addr); // jibgħat byte tal-valur

/ * kontroll għal kull byte * /

għal (i = 0; i

{

Wire.write (* buffer ++); // tibgħat id-data lill-iskjavi

}


/ * itemm it-trasmissjoni bit-stop bit * /

writeResult = Wire.endTransmission (); // ittemm it-trasmissjoni billi tissettja l-bit bit-stop

jekk (0! = ir-riżultat tal-kitba)

{

return writeResult;

}

ritorn 0;

}

/ * Xejn aktar minn dan * /