DS1307 a I2C
Moderátor: Moderátoři
Dam sem kusok kodu ako to mam spravene pre read a write
Kód: Vybrat vše
/*i2c_start(0b11010000); //startbit+adresa obodu+write
i2c_write(0x00); //veberiem adresu z ktorej chcem citat
i2c_start(0b11010001); //startbit+adresa obodu+read
i2c_read(data); //nacitane udaje ulozi do data
i2c_stop(); //stop bitfunckia pre write
Kód: Vybrat vše
i2c_start(0b11010000); //adresa obvodu+write
i2c_write(0x00); //adresa na ktoru chcem zapisovat
i2c_write(0b00000000); //data
i2c_stop(); //stopbitna ten expander len posielam data ktore citam z rtc aby som videl co z toho lezie
- Přílohy
-
i2cmaster.rar- (4.38 KiB) Staženo 140 x
-
Bez názvu.png- (32.28 KiB) Staženo 135 x
Kód: Vybrat vše
int main(void)
{
uint8_t data=0x00;
i2c_init();
i2c_start(MCP23017+I2C_WRITE);
i2c_write(IODIRA);
i2c_write(0b00000000); //EXP_PORTA(0..7) OUT
i2c_stop();
while(1)
{
i2c_start(0b11010000);
i2c_write(0x00);
i2c_rep_start(0b11010001);
data = i2c_readNak();
i2c_stop();
/*data++;
if (data == 256)
{
data=0;
}*/
i2c_start(MCP23017+I2C_WRITE);
i2c_write(OLATA);
i2c_write(data); //EXP_LATA(0..7) = 255
i2c_stop();
}
}