Hallo,
ich habe einiges gelesen - darum kann ich erst nun schreiben - aber mit Erfolg - zumindes ein bisschen

Den Befehl zum senden habe ich nun aufgeteilt in: #Slave,Parameter:Wert"CR"
so kann ich genau sagen für welchen µC die Nachricht ist, um welche Daten es sich handelt (Strom, Spannung...) und natürlich den Wert, der später dafür auf das LCD soll:
Der Sender hat nun (zum testen)den Befehl: Print "#S1,Strom:1234"

Leider zeigt der Empfänger das Wort "Strom" nicht an?!

Die Anzeige auf dem LCD vom Empfänger ist nun: S1,0:1234
soweit richtig - bis auf die 0 - da sollte "Strom" stehen - kann mir das einer erklären?

Code:
'-------------------------------------------------------------------------------
'Konfiguration µC:

$regfile = "m8def.dat"                                      'AT-Mega8
$crystal = 8000000                                          'Quarz: 8 MHz
$baud = 9600                                                'Baudrate definieren
'-------------------------------------------------------------------------------
'Ein / Ausgänge definieren:
Ddrb = &B11000001                                           'PB7-0: 1 Ausgang, 0 Eingang = Pin PB5-1 als Eingang
Ddrc = &B0000001                                            'PC6-0: 1 Ausgang, 0 Eingang = Pin PC6-1 als Eingang

'PullUps setzen:
Portb = &B00111110                                          '1 = PullUp AKTIV   ->PB 7,6,0 nicht aktiv
Portc = &B0111110                                           '1 = PullUp AKTIV   ->PC 6,0 nicht aktiv


'-------------------------------------------------------------------------------
'LCD konfiguration
Config Lcd = 16 * 2                                         'LCD größe
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , Rs = Portb.6 , E = Portb.7
Cursor Off Noblink

'-------------------------------------------------------------------------------
'Alias
Taster1 Alias Pinb.1
Taster2 Alias Pinb.2
Taster3 Alias Pinb.3



'-------------------------------------------------------------------------------
'Variablen
Dim Test1 As Integer
Dim Test2 As Integer

Dim Wert1 As Integer
Dim Wert2 As Integer


'--
Dim Slave As String * 3 , Para As String * 10 , Wert As String * 4 , Parameter As Integer
Dim E_byte As Byte , E_flag As Byte

'-------------------------------------------------------------------------------
'Timer
'Timer1 = 2x / sec bei 8MHz
Config Timer1 = Timer , Prescale = 256                      'Teiler
Const Timervorgabe = 49910
Enable Timer1
Enable Interrupts
On Timer1 Lcd                                               'timer einschalten


'-------------------------------------------------------------------------------
'Für RS232:
On Urxc Onrxd                                               'Interrupt-Routine setzen
Enable Urxc                                                 'Interrupt URXC einschalten
Enable Interrupts                                           'Interrupts global zulassen
'-------------------------------------------------------------------------------

Main:                                                       'Hauptschleife

'analogeingang auslesen und in Variable Wert1 schreiben

'IRGENDETWAS MACHEN:
Incr Test1
If Test1 = 65000 Then
Toggle Portc.0                                              'LCD Beleuchtung
Incr Test2
Test1 = 0
End If

'--
If E_flag = 4 Then                                          'Empfangsstring komplett
  Parameter = Val(para)                                     'aus String Integer machen
  Cls
  Locate 2 , 1
  Lcd Slave ; "," ; Parameter ; ":" ; Wert                  'LCD
  Waitms 200
  Slave = ""                                                'Slave löschen
  Para = ""                                                 '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 Para = Para + Chr(e_byte)
               If E_flag = 3 Then Wert = Wert + Chr(e_byte)

End Select






Return


'-------------------------------------------------------------------------------
'Timer0zähler:
'Timer1 = 49910
'Incr Timer0_60
'
'If Timer0_60 > 30 Then
'Timer0_60 = 0
'Gosub Lcd                                                   'und später das Programm hier fortführen!
'Toggle Portc.0
'End If
'Return



'-------------------------------------------------------------------------------
Lcd:
Timer1 = 49910
'Cls                                                         'Display löschen (IMMER ERST LCD LÖSCHEN UND DANN POSITION ANGEBEN!!!)
Locate 1 , 1
Lcd "Test2: " ; Test2
'Locate 2 , 1
'Lcd + Str(timer0_60)
Return
Tobias

@python_rocks:
benötige ich für RS485 wirklich nur das IC und den Pin der den MAX485 in den Sendemodus schaltet? Das wäre ja "einfach"