Zdravím, jen malý dotaz.
Chci číst velmi rychle převodník INA226. Vysvětlím.
Pokud nastavím SFR registry v Arduinu, dokážu číst ADC více jak 20x za ms. To je Super.
Ale má jen 10 bitů. A tak jsem použil modul INA226, ten je úžasný a suer přesný a stabilní, nemá chybu.
Ale jakmile ho chci číst, nechce se mu rychleji než 1x za ms.
A tak myšlenka.... V Setupu ho normálně nastavit pomocí knihovny a pak ho číst rovnou přikazem z i2c - bez pomalé knihovny.
V Picaxe jsem to umím, tam je to jednoduché,
je nastavena i2c adresa a pak příkaz hi2cin 1, (x,y) nebo hi2cin 1, (x,y)
ale jak tady v céčku? Jak přečtu registr 1, nebo 2....
Čtení registru i2c bez knihovny
Re: Čtení registru i2c bez knihovny
Pro čtení z EEPROM jsem třeba používal takovýhle kód:
Kód: Vybrat vše
//----------------------------------------------
// cteni 1 bajtu z externi EEPROM
byte EEPROM_read(unsigned long addr)
{
delayMicroseconds(7); // chvilku pauza od predchozi komunikace
Wire.beginTransmission(I2C_ADDR); // I2C adresa EEPROM podle adresovacich propojek
Wire.write(byte(addr >> 8)); // nastaveni adresy bunky MSB
Wire.write(byte(addr % 256)); // LSB
byte err = Wire.endTransmission();
if (err > 0) chyba(1); // podprogram pro hlaseni chyby I2C
delayMicroseconds(2);
Wire.requestFrom(I2C_ADDR, 1); // zadost o jeden bajt
return Wire.read();
}
//----------------------------------------------
Re: Čtení registru i2c bez knihovny
Paráda, už jsem to i pochopil... Díky MOC
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti