Forum

Einloggen | Registrieren | RSS  

Kommunikation zwischen mehreren µCs (AVR) (Elektronik)

verfasst von hws(R) E-Mail, 59425 Unna, 19.07.2008, 21:20 Uhr

» Das heißt also, ich arbeite genauso wie bei der RS232-Kommunikation (schon
» gemacht) indem ich Strings sende und die Slaves erkennen Anfang und Ende
» von alleine? -

natürlich nicht von alleine.
Eine RS485 ist auf der µC Seite auch nur eine serielle Verbindung.

Interrupt kommt jedesmal, wenn ein Byte empfangen wurde.
ist byte STX -> nein, dann zurück und nix machen
-> ist STX: nächstes Byte lesen und Adresse feststellen.
ist Adresse korrekt: -> alle nächsten Bytes bis EOT mitlesen und Speichern.


hast du schon jemls ne Interruptroutine programmiert? z.B. nen Timer für ne Uhrzeit?

» Quasi wenn ein String kommt genau diesen annehmen

Es kommt kein String, sondern immer nur ein Byte. Du musst dir Flags setzen, ob es ein String für diese Einheit ist.
Denn nach jedem Empfangenen Zeichen beendest du die Interruptroutine. Und beim nächsten Zeichen fängst du ganz jungfräulich wieder an. Damit du weisst, ob das vorherige Zeichen ein STX war oder ob du gerade mitten in einem auszuwertenden String bist oder ... musst du dir ein passendes Flag setzen und bei jedem Buchstaben abprüfen.


» und "von Hand" die beiden Adress-Bytes überprüfen

ja, nach STX ein Flag setzen und bei den nächsten beiden Interrupts die Adressen vergleichen.

» - und wenn die passen den Kram weiter
» verarbeiten?

Du bekommst jedesmal nur EIN Zeichen. Je nachdem welche Flags du gesetzt hast müssen die Zeichen in einen Puffer oder mit den Zeichen wird garnix gemacht (wenns nicht für die Einheit ist.

Im Hauptprogramm schaust du, ob was im Buffer steht (das ist dann für diese einheit) und wenn was drinsteht, dann guckst du was du damit machen willst.

» (die Weiterverarbeitung macht mir keine Sorgen - die
» Adressierungsgeschichte und das Problem "Übertragungslänge",

Wenn Zeichen EOT kommt, ist der String zuende. Dann wird ein Flag gesetzt im Interrupt und das Hauptprogramm kann daran erkennen, dass jetzt ein kompletter String vorbei ist.

Versuch erstmal interrupts zu verstehen. Bau dir mit einem internen Zeitgeber und Interruptverarbeitung ne Uhr.

hws



Gesamter Thread:

Kommunikation zwischen mehreren µCs (AVR) - Carsten Wallner(R), 19.07.2008, 16:46 (Elektronik)
Kommunikation zwischen mehreren µCs (AVR) - hws(R), 19.07.2008, 17:16
Kommunikation zwischen mehreren µCs (AVR) - Carsten Wallner(R), 19.07.2008, 17:40
Kommunikation zwischen mehreren µCs (AVR) - hws(R), 19.07.2008, 19:34
Kommunikation zwischen mehreren µCs (AVR) - Carsten Wallner(R), 19.07.2008, 20:28
Kommunikation zwischen mehreren µCs (AVR) - hws(R), 19.07.2008, 21:20
Kommunikation zwischen mehreren µCs (AVR) - Carsten Wallner(R), 19.07.2008, 21:52
Kommunikation zwischen mehreren µCs (AVR) - hws(R), 20.07.2008, 18:22
Kommunikation zwischen mehreren µCs (AVR) - Carsten Wallner(R), 22.07.2008, 22:31