Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola, soy nuevo en C y tengo el PCF8574, que es el extensor de bus I2C, y quiero implantar una función en C que me admita como parámetro un entero de 8 bits que indique que chip de los 8 voy a direccionar y como segundo parametro , el valor a escribir, de 8 bits también. Podrían alguien darme alguna ayuda orientativa de como puedo hacer, es que estoy muy perdido.
Uploaded with ImageShack.us
aquí esta una imagen del datashhet
gracias y adios ^^
Buenas, sería bueno que aportases más información, como el compilador que vas a usar y el micro para el que lo quieres programar. De todos modos te dejo un par de enlaces en los que hablan sobre el expansor de puertos PCF8574
http://hackaday.com/2008/12/27/parts-8bit-io-expander-pcf8574/ " onclick="window.open(this.href);return false;
http://www.circuitcellar.com/library/print/0303/millier152/5.htm " onclick="window.open(this.href);return false;
Aquí también hay una librería para CCS que maneja este integrado:
http://www.ccsinfo.com/forum/viewtopic.php?t=19526 " onclick="window.open(this.href);return false;
Suerte.
Utilizo el compilardor Pic C y es para el 16f887.
Gracias por la aportación ^^ !!
He buscado y encontre esto no sé si te ayudará.
int16 leer_sht(int8 comando)
{
int16 resultado;
int8 i;
sht_start();
for (i = 0; i < 8; i++)
{
if (bit_test(comando, 7) == 1)
input(dato);
else
output_low(dato);
sht_clk();
comando = comando << 1;
}
if (input(dato) == 1)
return 0xFFFF;
sht_clk();
while (input(dato) == 1)
;
for (i = 0; i < 8; i++)
{
resultado = resultado << 1;
if (input(dato) == 1)
resultado++;
sht_clk();
}
output_low(dato);
sht_clk();
for (i = 0; i < 8; i++)
{
resultado = resultado << 1;
if (input(dato) == 1)
resultado++;
sht_clk();
}
input(dato);
sht_clk();
return resultado;