Hallo

Ich arbeite gerade an einem Code um mein LCD (EADIP204) mit einem KS0073 Chip (von Robotikhardware) anzusteuern.
Meinen Code hab ich mir aus einigen Codeschnippseln (auch hier im Forum) zusammegebastelt, bis jetzt sieht das Programm folgendermaßen aus.

Code:
'*****LCD*****
'PB3 - E
'PB4 - RS

'PD2 - PIN11 - D4
'PD3 - PIN12 - D5
'PD4 - PIN13 - D6
'PD5 - PIN14 - D7
'**************

$regfile = "m32def.dat"                                     'ATmega32
$crystal = 11059200                                         'Quarz: 11059200 Hz

Declare Sub Lcdwrite

Dim Zeichen As Byte

Ddra = &B00000000
Ddrb = &B00000000
Ddrc = &B00000000
Ddrd = &B00000000

Porta = &B00011111
Portb = &B00000111
Portc = &B11111100
Portd = &B00000000

   'Pins des LCD-Modules

   Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portb.3 , Rs = Portb.4

   Initlcd

   Config Lcd = 20 * 4a
   'Config Lcdbus = 4

   Call Lcdwrite(&B00101100)
   Waitms 5

   Call Lcdwrite(&B00001001)
   Waitms 5

   Call Lcdwrite(&B00101000)
   Waitms 5

   Call Lcdwrite(&B00000110)
   Waitms 5

   Call Lcdwrite(&B00001100)
   Waitms 5

Do

   Locate 1 , 1                                             'Spalte 1 und Zeile 1 des Displays
   Lcd "Hallo"                                              'Displayausgabe
   Waitms 50                                                '50 Millisekunden Warten um Flimmern zu vermeiden
   Cls                                                      'Display löschen


Loop

   'Schreibt die Initialisierungs - Bits zum LCD
   Sub Lcdwrite

     ' Höherwertiges Nibble setzen
     If Zeichen.4 = 1 Then Portd.2 = 1 Else Portd.2 = 0
     If Zeichen.5 = 1 Then Portd.3 = 1 Else Portd.3 = 0
     If Zeichen.6 = 1 Then Portd.4 = 1 Else Portd.4 = 0
     If Zeichen.7 = 1 Then Portd.5 = 1 Else Portd.5 = 0
     ' Höherwertiges Nibble übertragen
     Portb.3 = 1
     Waitms 1
     Portb.3 = 0
     Waitms 1

     ' Niederwertiges Nibble setzen
     If Zeichen.0 = 1 Then Portd.2 = 1 Else Portd.2 = 0
     If Zeichen.1 = 1 Then Portd.3 = 1 Else Portd.3 = 0
     If Zeichen.2 = 1 Then Portd.4 = 1 Else Portd.4 = 0
     If Zeichen.3 = 1 Then Portd.5 = 1 Else Portd.5 = 0
     ' Niederwertiges Nibble übertragen
     Portb.3 = 1
     Waitms 1
     Portb.3 = 0
     Waitms 1

   End Sub

End
Wenn ich den Code kompilieren will sagt mir Bascom jedoch folgendes

"Error 130 Line 56 [u.a.] Incorrect number of parameter....usw."

Line 56,.... bezieht sich auf die Zeilen

Call Lcdwrite(&B00101100)
...
Call Lcdwrite(&B00001001)
....
usw

Nur ich finde den Fehler nicht, was ist daran genau falsch?