Hmhm, geht noch nicht.
GND verbunden.

Hier die Codes: (nur Wesentliches)

Sender:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 4800

Ddra.7 = 0
Porta.7 = 1
Ddra.6 = 0
Porta.6 = 1
Ddra.5 = 0
Porta.5 = 1
Ddra.4 = 0
Porta.4 = 1

Dim Led(42) As Byte                                         ' Array für Matrixled: 0= Aus, 1= Grün, 2= Rot, 3=orange
Dim I As Byte
' Zuerst alle aus
For I = 1 To 42
Led(i) = 0
Next


Dim A As Byte
A = 1
Dim B As Byte
B = 1

Do
' Eine Matrix-Led mehr aufleuchten lassen:
If Pina.4 = 0 Then
Waitms 300
Toggle Porta.0
Gosub Matrixchange
End If
Loop

Matrixchange:
' nächste LED
Led(b) = A
Incr B

'Falls alle leuchten:
If B = 43 Then
B = 1
For I = 1 To 42
Led(i) = 0
Next

Incr A

If A = 4 Then
A = 1
End If

End If

' nun noch per UART schicken:
For I = 1 To 42
Print Led(i);
Waitms 2
Next

Return
Und der Empfänger:

Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 4800

On Urxc Serielleroutine
Enable Urxc
Enable Interrupts

Dim Empfang As String * 50
Empfang = ""

Do

If Len(empfang) =42 Then
                                  
For I = 1 To 42
Blablabla (unwichtig)
Next

Empfang = ""
End If
Loop


Serielleroutine:
Empfang = Empfang + Chr(udr)
Return
Diese If-Abfrage in der Do-loop-Schleife wird nicht erreicht, "Emfpang" wird also nicht 42lang, falls sich überhaupt was tut.
Nun schau ich noch, ob der Serielle Interrupt überhaupt erreicht wird.

Im Empfänger läuft aber noch der Timer0-interrupt, der mit 36kHz einen Interrupt auslöst... Könnte das ein Grund für Störungen sein?

Aaaah, ich habs! Es war tatsächlich der Timer! Hab seinen Prescale mal auf 1024 gestellt, jetzt wird alles sauber und korrekt empfangen...

Jetzt mach ichs einfach so, dass der Mega32 zuerst etwas kurzes schickt, damit der Timer im Mega8 abgestellt werden kann. Dann blinkt halt die Matrix kurz aber was solls.



Herzlichen Gruss und Danke
Mario