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 istDa 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.
Der Master hat natürlich auch eine so ähnliche Empfangsprogrammierung - logisch sonst könnte er ja die eigene Anfrage an den Slave nicht empfangen.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
Das meiste davon kannst du ja weglassen, da du ja nur in eine Richtung senden möchtest
viel Erfolg,
Tobias







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen