Čtení registru i2c bez knihovny

Odpovědět
Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Čtení registru i2c bez knihovny

Příspěvek od Ludek » 09 úno 2022, 14:21

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....

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Čtení registru i2c bez knihovny

Příspěvek od AstroMiK » 09 úno 2022, 14:42

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();
  }
//----------------------------------------------

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Čtení registru i2c bez knihovny

Příspěvek od Ludek » 09 úno 2022, 15:41

Paráda, už jsem to i pochopil... Díky MOC

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů