Nabend zusammen,
folgendes Programm:

Code:
$regfile = "m8def.dat"
$framesize = 48
$swstack = 64
$hwstack = 64
$crystal = 8000000
$baud = 9600


Dim Empfangen As String * 3
Dim X As Bit , Y As Bit , Z As Bit 
Dim Ansteuerung As Byte , Wecksound As Byte
Dim Ansteuerung2 As Integer

X = 0
Y = 0
Z = 0
Wecker = 0

Config Portb = Output

Config Portc = Output

Config Portd.4 = Output
Config Portd.3 = Output
Summer Alias Portd.4
Pc Alias Portd.3

On Urxc Onrxd
Enable Urxc
Enable Interrupts





Do
If Len(empfangen) > 2 Then
   Ansteuerung2 = Val(empfangen)
   Select Case Ansteuerung2
      Case 400
         Pc = 1
         Empfangen = ""
      Case 401
         Pc = 0
         Empfangen = ""
      Case Is < 256
         Gosub Ansteuern
   End Select
End If
Loop
End

Ansteuern:
Ansteuerung = Ansteuerung2
   Portb = Ansteuerung
   Gosub Stehlampe
   Gosub Leuchtkugel
   Gosub Lichterkette
Empfangen = ""
Return

Lichterkette:
If Portb.4 = 1 Then : If X = 0 Then : Portc = &B00000000 : Portc.1 = 1 : X = 1 : Waitms 500 : Portc = &B00000000 : End If : End If
If Portb.4 = 0 Then : If X = 1 Then : Portc = &B00000000 : Portc.0 = 1 : X = 0 : Waitms 500 : Portc = &B00000000 : End If : End If
Return

Stehlampe:
If Portb.6 = 1 Then : If Y = 0 Then : Portc = &B00000000 : Portc.3 = 1 : Y = 1 : Waitms 500 : Portc = &B00000000 : End If : End If
If Portb.6 = 0 Then : If Y = 1 Then : Portc = &B00000000 : Portc.2 = 1 : Y = 0 : Waitms 500 : Portc = &B00000000 : End If : End If
Return

Leuchtkugel:
If Portb.7 = 1 Then : If Z = 0 Then : Portc = &B00000000 : Portc.5 = 1 : Z = 1 : Waitms 500 : Portc = &B00000000 : End If : End If
If Portb.7 = 0 Then : If Z = 1 Then : Portc = &B00000000 : Portc.4 = 1 : Z = 0 : Waitms 500 : Portc = &B00000000 : End If : End If
Return

Onrxd:
Empfangen = Empfangen + Chr(udr)
Return

Problem ist: Der Portb wird nicht richtig gesetzt. Nachdem die
"Ansteuern" Schleife ausgeführt wurde, messe ich jeden Port von b durch
aber keiner ist "1". Deshalb funktionieren auch die Schleifen
Lichterkette, Leuchtkugel und Stehlampe nicht. Ist da irgendwas falsch?
(Der µC läuft über (Mhz Interner Takt)