www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Master Slave Prinzip


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich hab für mein Master Slave Verfahren Kommandos difiniert. Zum 
einen gibt es das Feld "Request". Dies kann bei mir 0 oder 1 annehmen.
Wenn der Master eine Anfrage(Request) startet muss da das Request auf 0 
oder 1 stehen? Bzw. Wenn der Slave dann daruafhin antwortet (response) 
wie sieht es da dann aus?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast schrieb:
> Wenn der Master eine Anfrage(Request) startet muss

Müssen tut gar nichts.

> da das Request auf 0
> oder 1 stehen?

Du bist der Programmierer. Dein Wort ist Gesetz. Wenn du das so 
definierst, dann ist das so.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie macht man die üblicherweise?

Request = 1 --> eine Antwort vom Slave wird erwartet
Request = 0 --> keine Antwort vom Slave wird erwartet

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schuhe kannst du dir aber alleine binden ?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie würdest Du es im normalen Leben machen?
würdest Du Dir einen Zettel an den Kühlschrank heften: Kartoffeln holen!
oder einen
"Keine Kartoffeln holen!" und den wegnehmen, wenn Du welche brauchst?

Gruß aus Berlin
Michael

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast schrieb:
> Wie macht man die üblicherweise?
>
> Request = 1 --> eine Antwort vom Slave wird erwartet
> Request = 0 --> keine Antwort vom Slave wird erwartet

Kommt darauf an, wie DU die Bedeutung des Bits definierst.
Persönlich würde ich definieren: Egal wer die Anfrage absetzt, er hat 
bei einer Anfrage dieses Bit zu setzen. Ob der Master oder der Slave 
eine Anfrage absetzt spielt keine Rolle.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie macht man die üblicherweise?
> Request = 1 --> eine Antwort vom Slave wird erwartet
> Request = 0 --> keine Antwort vom Slave wird erwartet

Ich würde das nicht "Request" nennen, sondern "Response required". Dann 
sollte alles klar sein.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die zahlreiche Unterstützung.

Nun soll der Master ein Anfrage an den Slave senden.
Dieser soll daraufhin Antworten. Die Antwort enthält Nutzdaten.
Wie müsste dazu das Kommando aussehen?

Beispiel Kommando response:
Datalength IDSend IDRecv Request ....

Hat jemand sowas schonmal für ein Master Slave Prinzip mit Komandos 
umgesetzt?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz bestimmt.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Peter für den Beitrag. Du bist so lieb.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast schrieb:
> Danke für die zahlreiche Unterstützung.
>
> Nun soll der Master ein Anfrage an den Slave senden.
> Dieser soll daraufhin Antworten. Die Antwort enthält Nutzdaten.
> Wie müsste dazu das Kommando aussehen?
>
> Beispiel Kommando response:
> Datalength IDSend IDRecv Request ....
>
> Hat jemand sowas schonmal für ein Master Slave Prinzip mit Komandos
> umgesetzt?

Denk dir was aus!
Das ist ja gerade das Tolle an der Programnmierung! Du bestimmts was 
Sache ist. Niemand sonst.

Hör auf, sofort alles im Editor reinzuhacken.
Nimm dir Papier und Bleistift und definiere in welcher Reihenfolge 
welche Bytes mit welchem Inhalt von wem zu wem geschickt werden. Achte 
darauf, dass der jeweilige Empfänger immer nur das weiß, was er von der 
Gegenstelle an Bytes bekommt, sprich: ein empfangenes Byte muss das 
weitere auslösen können, falls notwendig.

Spiel das ganze in Gedanken (oder mit Papier und Bleistift) durch

  Der Sender sendet ein Byte: Welche Bits sind gesetzt? Was ist die
  Bedeutung des Bytes?

  Wie reagiert der Empfänger darauf? Was schickt er zurück? Müssen
  mehrere Bytes zurück übertragen werden, wie ist das dann? Sind das
  immer gleich viele oder unterschiedlich viele. Woran kann der neue
  Empfänger (der ursprüngliche Sender) erkennen, welcher Fall vorliegt?
  Muss er das überhaupt wissen oder erwartet er bei einer Antwort immer
  als erstes ein Byte welches ihm angibt wieviele Bytes noch kommen
  werden?

Das ist das Salz in der Suppe der Programmierung. Du bestimmst wie die 
"Welt" funktioniert, nach welchen Regeln gespielt wird. Du bist
für deinen µC Gott! So wie du die "Welt" für richtig befindest, so ist
sie per Definition richtig (Ob deine Definitionen Sinn ergeben steht auf 
einem anderen Blatt. Aber das wirst du merken, wenn deine "Welt" nicht 
funktioniert)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.