ja............................
Hi Leute,
ich habe jetzt schon längere Zeit im RN-Wiki und im Forum geschaut, jedoch keine genaue Lösung zu meiner Frage gefunden. Ich habe das Problem, dass ich nicht weiß, ob ich mit dem TWI Daten an mein Slave-Board senden kann und über meinen Master auch Daten von diesem Board wieder abholen kann, sodass ich ihm Parameter übergebe und vom Slave wieder andere Parameter bekomme?
Ist es also möglich, dass ich von meinem Master an mein Slave was sende und vom Slave wieder etwas zurückbekomme?
MfG
Sven
ja............................
Hätte jemand ein Bespiel für mich, wie die Programmierung in etwa aussehen müsste oder kann mir jemand sagen, was ich von dem im RN-Wiki beschriebenen Beispielen benutzen müsste?
Gruß,
Sven
Hallo,
Du kannst Die Beispiele vom Wiki in sachen TWI usw. genauso übernehmen wie sie da stehen, dann machen die das was dabei steht, ist doch Beispiel genug.
Am Ende einer Wiki-Seite stehen dann meist weiterführende Links, die sich mit dem geleichen Thema beschäftigen.
Hab jetzt im Wiki gefunden, dass es ein Master gibt der senden und empfangen kann. Geht dies genauso auch mit einem Slave?
Es gibt auch eine sog. Multimaster Lösung oder
Du "Pollst" den/die slaves in regelmäßigen Abständen vom Master aus an und fragst diese ab.
Solange müssen die Slaves dann eben die Resultate zwischenspeichern.
In Bascom sind auch einige Beispiele dabei.
Allerdings habe ich noch keinen Slave selbst programmiert sondern fertige Bausteine z.B. PCF8574 verwendet.
Als erstes braucht du ein Array (im Master) aus BYTE Werten, in welchen Du die Antworten ablegen kannst.
An erster Stelle kommt in das Array Dein Abfragebefehl (kann auch mehrere Bytes haben)
Mit
Code:I2CRECEIVE slave, var , b2W, b2RCode:I2creceive &H40 , Buf(1) , 2 , 1 'send two bytes and receive one byte
gibst Du die Adresse des Slaves und den Variablennamen des Array an,
nun noch wieviele Bytes (aus dem Array) gesendet werden sollen (also dein Abfragebefehl) und wieviele Bytes empfangen werden sollen.
Der Befehl überschreibt dann die Inhalte des Arrays mit den empfangenen Daten vom Slave.
Mit dem einen Befehl wird also gesendet und empfangen. Einfach so auf daten Warten ist nicht möglich, da die Slaves erst mal eine Aufforderung sum senden erhalten müssen.
*KLARSOWEIT?*
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
Im ursprüngliche Standard ist das nicht zwingend vorgesehen. Es wird aber von manchen I2C-Chips unterstützt, und auch in der Kabelbelegung nach RN-Definition ist eine Leitung dafür vorgesehen.
Hi Leute,
ich habe jetzt meine Schaltung soweit aufegbaut und mit Twi versehen, jetzt wollte ich nur noch mal fragen, ob ich nur einzelnen Bytes oder auch Strings über den Bus senden kann?
MfG
Sven
Ein string besteht doch aus mehreren einzelnen Bytes. Also ist das kein Problem. Je nachdem, was du machen willst, musst du halt ein Protokoll für die Übertragung verwenden. Dazu gabs in letzter Zeit ziemlich viele threads.
Lesezeichen