Pages: 1 2 3 [4]   Go Down
Author Topic: Arduino steuert device über I²C und SPI an  (Read 3615 times)
0 Members and 1 Guest are viewing this topic.
Germany
Online Online
Faraday Member
**
Karma: 57
Posts: 3030
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn du die Wire library verwendest, ist die Adresse immer 0x58

Du rufst entweder (bzw. erst) beginTransmission (0x58); // schreiben
dann eventuell requestFrom(0x58,1); // lesen
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 272
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, d.h. die library an sich macht es. Verstehe ich es richtig, ich sende standardmäßig meine 58h und wenn ich jetzt zb wire.write(...) sage,weiß macht die library einen shift nach links und habe dann die Adresse B0h?
Wenn ich den Befehl wire.Requestfrom(...) macht die library daraus einen read befehl, d.h. der slave weiß dass er daten am Master senden. Stimmt das so?

Wie ist denn das shiften bei dem read vom slave, wird da mt einer 1 nach links geshiftet?
mir uist halt auch der funktionsprinzi wichtig smiley-grin
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 272
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bzw durch shiften kann ich doch eine 7 bit adresse  nicht in eine 8 bit adresse umwandeln. das is mir unklar
Logged

Germany
Online Online
Faraday Member
**
Karma: 57
Posts: 3030
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Quote
durch shiften kann ich doch eine 7 bit adresse  nicht in eine 8 bit adresse umwandeln. das is mir unklar
Doch:

Code:
byte address = 0x58;
const byte TE_read = 1;

byte twi_slarw = TE_read;
twi_slarw |= address << 1;

Serial.println (twi_slarw,HEX); // sollte "B1" ausgeben...

Vielleicht ich verstehe dein Problem nicht.

Quote
mir uist halt auch der funktionsprinzi wichtig :smiley-grin:
Dann hol dir den relevanten Code aus der library in deinen Sketch und krieg es ohne <Wire.h> ans laufen.
Libraries enthalten nichts das nicht auch direkt im sketch stehen könnte. Aber einiges, was für einen Prinzip-Test evtl. überflüssig ist. 
Sehr mühsam , aber lehrreich. smiley-wink
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 272
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok habe es veratanden hehe danke. smiley-grin
Also d.h. wenn ich die Wire.wirte) verwende, weiß dadurch mein controller, dass ich schreiben möchte und setzt das R/W auf 0 und wenn ich die Requestfrom() dann eine 1.

Habe ich es richtig verstanden?
Nur findest du in der Library diese funktionen nicht wie write usw.
Logged

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1888
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi

Quote
durch shiften kann ich doch eine 7 bit adresse  nicht in eine 8 bit adresse umwandeln. das is mir unklar

doch, weil die sieben bits "rechts" im byte stehen. nach dem shiften stehen sie "links" und ganz "rechts" dann je nachdem die 0 oder 1.

aus:
01000101  wird, wenn Du eine 1 reinschiebst:
10001011  oder, wenn Du eine 0 reinschiebst:
10001010

die adresse bleibt also voll vorhanden.

gruß stefan
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 272
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi danke dir smiley-grin
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 272
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also danke für die tollen erklärungen.
Das mit dem shiften habe ich verstanden, nur was ich noch nicht ganz verstehe ist , wie weß der kontroller ob er das Read bit(1) oder Write bit(0) mitsendet? -> wäre es vllt von der funktion abhängig , die man aufruft? , z.b. rufe ich wire.write(c) , dann sendet er eine 0 mit der slave adresse und wenn ich wire.requestfrom(...) aufrufe, sendet er eine 1 als R/W bit? -> Liege ich da richtig?


Danke für eure Unterstützung smiley
Logged

Germany
Online Online
Faraday Member
**
Karma: 57
Posts: 3030
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Liege ich da richtig?
Ja
Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 272
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

HI danke euch smiley-grin
Logged

Pages: 1 2 3 [4]   Go Up
Jump to: