Dobrý den,
mám poslední legální verzi Bascomu 2.0.7.8, nezkoušel někdo z Vás za chodu programu předefinovat I2C linku na jiné porty ?
Lámu si nad tím delší dobu hlavu, nefunguje mi to.
Příklad:
…
Config Scl = Porte.5
Config Sda = Porte.4
I2cinit
rutina 1 na čtení dat z I2C
konec rutiny
…
Config Scl = Porta.4
Config Sda = Porta.2
I2cinit
rutina 2 načtení dat z I2C
…
Funguje mi jen vždy ta poslední změna (rutina 2) portu a ta první (rutina 1) ne…
Marek
Podívej se do nápovědy na CONFIG I2CBUS.
Tak díky za nakopnutí,
ale je to teda docela problém, v nápovědě například není nic o tom že:
-
že se musí použít “i2cv2.lib” knihovna
-
čísla portů musí být po sobě jdoucí směrem nahoru
-
čísla portů musí být z jedné brány (na jednom řádku konfigurace-
Config I2cbus = 0 , Scl = Porta.2 , Sda = Porta.3
Config I2cbus = 1 , Scl = Porte.0 , Sda = Porte.1
I2cbus = 0
I2cinit
I2cbus = 1
I2cinit ) -
nefunguje tam Err bit=musí se upravit a překompilovat knihovna"i2c-multibus.lib"
A i přesto s pullup rezistory - nic
Neuvedl jsi v dotazu, jaký máš procesor - to je celkem základ, protože procesorů s AVR jádrem je celkem dost …
Umístění signálů pro I2C a počet I2C portů je jasně dáno procesorem nebo je potřeba I2C port vytvořit softwarově. Jsi si jistej, že knihovna “i2cv2.lib” vytváří I2C porty softwarově ? Jinými slovy - pokud knihovna “i2cv2.lib” pouze využívá HW porty mcu, pak je 1) procesor musí mít 2) nelze předefinovat umístění signálů.
Ahoj,
je to mega 2560, jde mi o porty: jedna dvojice E5,E4, druhá dvojice A2,A3.
Něco jsem našel zde : electronics598.rssing.com/browse … &item=7005
Na jedné dvojici mám BMP085 a na druhé TLS2561.
Pokud si nadefinuju standardní I2C - config sda= …
tak vždy jedno zařízení funguje. Ale nikdy obě současně…
M
I proč je nepověsit obě na jeded I2C port ? Vždyť součástí I2C komunikace je i adresace zařízení. Druhá varianta je vykašlat se na knihovnu a napsat si obsluhu svoují - obzvlášť pokud jsou to HW porty.
Bascom, uz vidim ako v tom niekto pise. Vlastne rutiny. Vecsinou to pouzivaju zaciatocnici.
Teď jsem si všimnul :
Tak proč rveš druhej I2C na E0, E1 …