Hallo leute!

Habe 2 atmeg8535 mittels txd ind rxd pins verbunden und möchte das der zweite daten an den ersten übergibt um diese auf einem lcd display anzuzeigen.
Haut auch fast hin, nur irgendwie verändert sich die zahl nicht es steht immer zehn und es flakert.
Ich habe den 2ten von txd zum ersten mit rxd verkabelt, beide funktionieren und erfüllen ihre programme bis auf die übertragung.

Ich poste mal die 2 codes vielleicht hat mal wer bock, schnell zu schauen was da nicht funkt.

Kurze programm beschreibung:
Ein chip der 1te hängt am display und hat eine temperaturauswertung und noch andere adc aufgaben die noch programmiert werden, der 2te soll am eingang anliegende impulse an 24 relaise der reihenfolge rauf oder runter schalten ( dient zur steuerung der lautstärke einer endstufe), alles is mal grob ausprogrammiert zum simulieren.

Der wert X (ein array) is der wert der sich verändern kann (lautstärke , zahl von 1 bis 24 ), und dieser zustand soll angezeigt werden am display.

Code 1 vom chip der empfängt und am display hängt:

Code:
$regfile = "8535def.dat"
$crystal = 4000000                                         
$baud = 9600

Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output
Config Pinb.5 = Output
Config Pinb.6 = Output
Config Pinb.7 = Output
Config Pind.0 = Input
Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.7 = Output

Config Pina.1 = Input
Config Pina.2 = Input

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Cursor Off

Start Adc

Dim Temp As Single
Dim A As Single
Dim Volt As Word
Dim B As Single
Dim C As Single
Dim D As Single
Dim Volta1 As Word
Dim Rxd_eingang As Byte

Cls
Upperline
Lcd "Hallo Welt"
Lowerline
Lcd "     LO.GO     "
Waitms 90
Cls
Do

Volt = Getadc(0)
A = Volt * 5
Temp = A / 10.24
Locate 1 , 1
Lcd "T:" ; Fusing(temp , "#.") ; Chr(223) ; "C" ;

Volta1 = Getadc(1)
C = Volta1 * 5
D = C / 1024
Lowerline
Lcd "Porta1:" ; Fusing(d , "#.##") ; "V"


If Ischarwaiting() = 1 Then Gosub Empfang
Locate 1 , 10
Lcd "Vol:" ; Rxd_eingang ; " "                              'hier soll der X wert vom 2ten chip zur anzeige kommen , geht aber nicht ganz,der wert verändert sich nicht bei aktionen des 2ten chips????

Loop

Empfang:

Rxd_eingang = Inkey()

Return

Code 2 vom chip der zum ersten schickt:

Code:
$regfile = "8535def.dat"
$crystal = 4000000                                          
$baud = 9600                                                

Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output

Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output

Config Pina.1 = Input
Config Pina.2 = Input

Porta.1 = 1
Porta.2 = 1

Portb.0 = 1
Portb.1 = 1
Portb.2 = 1
Portb.3 = 1
Portb.4 = 1

Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Portd.5 = 1
Portd.6 = 1

Led1 Alias Portb.0
Led2 Alias Portb.1
Led3 Alias Portb.2
Led4 Alias Portb.3
Led5 Alias Portb.4
Led6 Alias Portd.2
Led7 Alias Portd.3
Led8 Alias Portd.4
Led9 Alias Portd.5
Led10 Alias Portd.6

I1 Alias Pina.1
I2 Alias Pina.2

Dim X As Integer

X = 0                                                       'Dieses X will ich auf den ersten chip übertargen und der soll dann am lcd display angezeigt werden, wechselt natürlich ständig

Do

If I1 = 0 Then
   X = X + 1
   Print X
End If
If I2 = 0 Then
   X = X - 1
   Print X
End If
       If X = 1 Or X = 0 Then
         Led1 = 0 : X = 1
          Print 01
          Else
          Led1 = 1
       End If
       If X = 2 Then
          Led2 = 0
          Print 02
          Else
          Led2 = 1
       End If
       If X = 3 Then
          Led3 = 0
          Print 03
          Else
          Led3 = 1
       End If
       If X = 4 Then
          Led4 = 0
          Print 04
          Else
          Led4 = 1
       End If
       If X = 5 Then
          Led5 = 0
          Print 05
          Else
          Led5 = 1
       End If
       If X = 6 Then
          Led6 = 0
          Print 06
          Else
          Led6 = 1
       End If
       If X = 7 Then
          Led7 = 0
          Print 07
          Else
          Led7 = 1
       End If
       If X = 8 Then
          Led8 = 0
          Print 08
          Else
          Led8 = 1
       End If
       If X = 9 Then
          Led9 = 0
          Print 09
          Else
          Led9 = 1
       End If
       If X = 10 Or X = 11 Then
          Led10 = 0 : X = 10
          Print 10
          Else
          Led10 = 1
       End If
Waitms 30
Loop
Danke schon mal ,ein jeder tipp oder ratschlag wird gerne angenommen....DANKE[/code]