Also mein Projekt ist noch nicht ganz fertig aber funktioniert soweit:


Der Sender startet eine Anfrage an den entsprechenden Slave.
Also wenn der MASTER von Slave1 den Strom wissen will sieht das so aus:

Print "#S1,Strom"

__________________________________________________ __________
Der Empfang ist etwas aufwändiger:

zuerst wird nachgesehen ob die empfangene Nachricht auch für diesen slave ist. Als nächstes wird nachgesehen was der Master wisssen will: zb. Strom. Dann wird gesendet: von (Slave1) was (Strom) und natürlich der Wert, der ja die eigentliche Anfrage ist Da das Programm noch im test ist wird alles auf LCD ausgegeben also nicht verwirren lassen. Zur Reichweite kann ich noch nichts sagen. zur Zeit habe ich fliegnde verdrahtung mit 1m klingeldraht und die µC direkt verbunden also auf 5V Pegel und ein Max232 zur kontrolle am PC.

Code:
Main:

'auf Empfang reagieren:
If E_flag = 4 Then                                          'Empfangsstring komplett
  If Slave = "S1" Then                                      'wenn Daten für Slave1

       Select Case Parameter

               Case "Strom" : Print "#S1,Strom:" ; Strom
                              Locate 1 , 1
                              Lcd "S..." ; Slave ; "," ; Parameter ; ":" ; Strom

               Case "Volt" : Print "#S1,Volt:" ; Volt
                             Locate 1 , 1
                             Lcd "S..." ; Slave ; "," ; Parameter ; ":" ; Volt

               Case Else : Print "Err."

       End Select


  End If

  'Daten auf jedenfall löschen
  Slave = ""                                                'Slave löschen
  Parameter = ""                                            'Parameter löschen
  Wert = ""                                                 'Wert löschen
  E_flag = 0                                                'Empfang neu setzen
End If

goto Main

'_________
Onrxd:
E_byte = Udr
Select Case E_byte
  Case 35 : E_flag = 1                                      '"#" = Slave wird gesendet
  Case 44 : E_flag = 2                                      '"," = Parameter kommt
  Case 58 : E_flag = 3                                      '":" =
  Case 13 : E_flag = 4                                      '"ENTER" = Empfang komplett
  Case Else : If E_flag = 1 Then Slave = Slave + Chr(e_byte)
               If E_flag = 2 Then Parameter = Parameter + Chr(e_byte)
               If E_flag = 3 Then Wert = Wert + Chr(e_byte)

End Select
Der Master hat natürlich auch eine so ähnliche Empfangsprogrammierung - logisch sonst könnte er ja die eigene Anfrage an den Slave nicht empfangen.

Das meiste davon kannst du ja weglassen, da du ja nur in eine Richtung senden möchtest

viel Erfolg,
Tobias