Hallo, wie kann ich einen string über die Funktion > void write(uint8_t v, uint8_t power = 0); oder > void write_bytes(const uint8_t *buf, uint16_t count, bool power = 0); in der OneWire Bibliothek für Arduino an einen anderen Arduino senden? Bzw. für was steht "v" (1. Funktion) und "count" (2. Funktion)?
:
Verschoben durch User
Hi Kenne die Routienen beide nicht, also kann's auch kompletter Mist sein: V wird für Variable stehen, Deren Inhalt gesendet werden soll. Count die Anzahl an Byte ab der Adresse buf(fer). Die jeweiligen 'power' werden wohl den eigenen Pull-Up aktivieren. ... reine Hüft-Schüsse, dürfte aber zumindest die Richtung sein. MfG
Patrick J. schrieb: > Die jeweiligen 'power' werden wohl den eigenen Pull-Up aktivieren. > > ... reine Hüft-Schüsse, dürfte aber zumindest die Richtung sein. Einfacher wäre wahrscheinlich, beispielsweise die Kommentare im Quellcode zu lesen. Da wird deutlich mehr, als der Pull-Up aktiviert ;-)
1 | // Write a byte. The writing code uses the active drivers to raise the |
2 | // pin high, if you need power after the write (e.g. DS18S20 in |
3 | // parasite power mode) then set 'power' to 1, otherwise the pin will |
4 | // go tri-state at the end of the write to avoid heating in a short or |
5 | // other mishap. |
6 | void OneWire::write(uint8_t v, uint8_t power /* = 0 */) { |
7 | ... |
8 | // |
Gasst schrieb: > wie kann ich einen string ... an einen anderen Arduino senden? Erstmal brauchst du für den anderen Arduino eine Bibliothek, mit der er sich als 1-Wire Slave fühlt. Vorher macht es wenig Sinn, zu senden ;-)
...einfach mal in OneWire.h gucken:
1 | // Write a byte. If 'power' is one then the wire is held high at |
2 | // the end for parasitically powered devices. You are responsible |
3 | // for eventually depowering it by calling depower() or doing |
4 | // another read or write. |
5 | void write(uint8_t v, uint8_t power = 0); |
@Gasst (Gast) >Hallo, wie kann ich einen string über die Funktion >> void write(uint8_t v, uint8_t power = 0); Damit kann man ein einziges Byte über OneWire senden. v ist das Datenbyte, power eine Option, welche bewirkt, daß nach dem Schreiben des Bytes der String Pull Up eingeschaltet wird. Das braucht man für parasitär versorgte ICs, welche für bestimmte Operationen (Temperatur messen, Daten in EEPROM speichern etc.) viel Strom brauchen. >oder >> void write_bytes(const uint8_t *buf, uint16_t count, bool power = 0); Damit kann man mehrere Bytes schreiben. *buf ist ein Zeiger auf den Datenblock, count ist die Anzahl der zu schreibenden Bytes. >>in der OneWire Bibliothek für Arduino an einen anderen Arduino senden? Dann muss auf dem empfangenden Arduino aber eine passende Bibliothek laufen, welche als OneWire Slave arbeiten kann. Die "normalen" Bibliotheken können nur Master!
Falk B. schrieb: > Dann muss auf dem empfangenden Arduino aber eine passende Bibliothek > laufen, welche als OneWire Slave arbeiten kann. Die "normalen" > Bibliotheken können nur Master! Ein UART wäre da wohl passender. +++ AT Z (<-- ein Witz für insider)
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.