Voici vite fait un code pour lire ou écrire une donnée dans un PCF8574;
Code:
/***********************************************************************/
/* Gestion du PCF8574 */
/* Composant i2c 8I/O */
/* */
/* fichier : pcf8574.c */
/* */
/* date de création : 24.05.08 */
/* HULK28 */
/***********************************************************************/
#define PCF8574_TX 0x70 // PCF8574 Adresse en écriture
#define PCF8574_RX 0x71 // PCF8574 Adresse en lecture
/* Fonctions */
/* transmettre une donnée dans le PCF8574 */
int I2C_tx_pcf8574(int data,int adr)
{
int ret;
I2C_start();
ret = I2C_send_byte(PCF8574_TX + (adr*2));
if (ret)
{
ret = I2C_send_byte(data);
if (ret) I2C_stop();
}
return ret;
}
/* recevoir une donnée du PCF8574 */
int I2C_rx_pcf8574(int *data,int adr)
{
int ret;
I2C_start();
ret = I2C_send_byte(PCF8574_RX + (adr*2));
if (ret)
{
*data = I2C_read_byte(0);
} else *data = 0;
I2C_stop();
return ret;
}