Hallo,

ich bin verzweifelt... Hab eben mal wieder mein Projekt hervorgeholt (an dem ich seit Juli nicht mehr gearbeitet hab) und jetzt funktioniert nichts mehr.
Vielleicht bin ich einfach zu blind den Fehler zu finden.
Das ganze soll ermöglichen über einen USB-to-UART Converter Pins schalten zu können...
Hier mal der Code:

Code:
$regfile = "M8def.dat"                                      '.dat-file ATmega8'
$crystal = 8000000                                          'Taktfrequenz 8MHz'
$hwstack = 350                                              'Größe Hardwarestack'
$swstack = 350                                              'Größe Softwarestack'
$framesize = 200                                            'Größe Frame'

''$lib "i2c_twi.lbx"                                          ' Für Hardware TWI

$baud = 19200                                               'Baudrate UART

Declare Sub Serial0charmatch()
Declare Sub Verarbeiten()
Declare Sub Setzen()

''Config Scl = Portc.5                                        'SCL-Pin
''Config Sda = Portc.4                                        'SDA-Pin

''Config Twi = 400000                                         'Clockspeed für SCL
''Twcr = &B00000100                                           'TWI einschalten

''Const Pcf_write = &H39                                      'Adresse jeelabs LuxPlug
''Const Pcf_read = &H40

''I2cinit                                                     'SCL und SDA initialisieren

Config Serialin = Buffered , Size = 4 , Bytematch = 37      '37=%
Enable Interrupts

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portd.5 , Db7 = Portb.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2

Config Portb.0 = Output                                     'Kontroll-LED
Config Portd.7 = Output                                     '1. schaltbare LED
Config Portd.6 = Output                                     '2. schaltbare LED

Dim I As Byte                                               'Splitting der Hauptschleife
Dim Incoming_data As String * 5                             'UART Buffer
Dim Port As String * 2                                      'Portnummer (String)
Dim Wert As String * 2                                      'Wert -> Port (String)
Dim B_port As Byte                                          'Portnummer (Wert)
Dim B_wert As Byte                                          'Wert -> Port (Wert)
'Dim Flag12 As Bit                                           'Zustand Pin 12
'Dim Flag13 As Bit                                           'Zustand Pin 13


Cls
Cursor On Blink
Lcd "USB-IO_plus"
Waitms 150
Locate 2 , 1
Lcd "."
Waitms 150
Locate 2 , 2
Lcd "."
Waitms 150
Locate 2 , 3
Lcd "."
Waitms 150
Locate 2 , 4
Lcd "initialisiert"


Do
   Toggle Portb.0                                           'Blinkende LED zur Kontrolle des Programmdurchlaufes
   For I = 0 To 200
      Waitms 1
   Next I

   Setzen
Loop

End                                                         'end program


Sub Serial0charmatch()
   Input Incoming_data Noecho                               ' Daten aus Buffer auslesen
   'Print Incoming_data                                      'Ausgabe zu Debuggingzwecken
      Verarbeiten
   Clear Serialin                                           ' Buffer leeren
End Sub

Sub Verarbeiten()
   Port = Left(incoming_data , 2)                           'Byte 2 und 3 extrahieren
   Wert = Mid(incoming_data , 3 , 2)                        'Byte 4 und 5 extrahieren
   B_port = Val(port)                                       'String zu Wert konvertieren
   B_wert = Val(wert)
   Print "Port " ; B_port ; "Wert " ; B_wert                'Ausgabe zu Debuggingzwecken
End Sub

Sub Setzen()
   Select Case B_port                                       'zu setzenden Pin auswählen
      Case 50 : If B_wert = 49 Then
                     Portd.6 = 1
                     Gosub Print_on
                 Elseif B_wert = 50 Then
                     Portd.6 = 0
                     Gosub Print_off
                 End If
      Case 50 : If B_wert = 49 Then
                     Portd.7 = 1
                     Gosub Print_on
                 Elseif B_wert = 50 Then
                     Portd.7 = 0
                     Gosub Print_off
                 End If
      Case Else : !nop
   End Select
End Sub

Print_on:
   Print "Pin set high"
Return

Print_off:
   Print "Pin set low"
Return
Momentan funktioniert so gut wie gar nichts... nur die Kontroll LED blinkt und die erste Ausgabe auf dem LCD erscheint...