Hallo

ich habe soeben versucht den eeprom beispiel code aus dem bascom-buch
in meinen code zu integrieren
leider bekomme ich beim compilen die fehlermeldungen:
ungültiger datentyp und variable nicht dimensioniert

Woran liegt das ?

Weiterhin wollte ich die entstandene eep ins eeprom schreiben bekam aber die Meldung vom avrprog das es keine gültige intel hex datei sei.
muß ich dann die $eepromhex anweisung nutzen ?
es folgt der code für mega 16

Code:
$crystal = 8000000
$regfile = "m16def.dat"

Dim Eepromlesen As Byte
Dim Zeichen As Byte
Declare Sub Zumdisplay(byval Zeichen As Byte)               'funktion zum senden an das display

Db4dis Alias Portc.6
Db5dis Alias Portc.7
Db6dis Alias Porta.7
Db7dis Alias Porta.6
Rsdis Alias Portc.4
Enabledis Alias Portc.5


Config Lcdpin = Pin , Db4 = Db4dis , Db5 = Db5dis , Db6 = Db6dis , Db7 = Db7dis , E = Enabledis , Rs = Rsdis

Initlcd
   Call Zumdisplay(&B00101100)                              'aufruf zum initialisieren
   Waitms 5                                                 'des display controllers
   Call Zumdisplay(&B00001001)
   Waitms 5
   Call Zumdisplay(&B00101000)
   Waitms 5
   Call Zumdisplay(&B00000110)
   Waitms 5
   Call Zumdisplay(&B00001100)
   Waitms 5
Config Lcd = 20 * 4a                                        'display als 20 zeichen mal 4 zeilen
Cls

Readeeprom Eepromlesen , Label1
Locate 1 , 1
Lcd Eepromlesen
Readeeprom Eepromlesen
Locate 1 , 10
Print Eepromlesen
Locate 2 , 1
Readeeprom Eepromlesen , Label2
Print Eepromlesen
Locate 2 , 10
Readeeprom Eepromlesen
Print Eepromlesen

End


$eeprom
Label1:
Data 1 , 2 , 3 , 4 , 5
Label2:
Data 10 , 20 , 30 , 40 , 50
$data


Sub Zumdisplay(byval Zeichen As Byte)

     ' Höherwertiges Nibble setzen
     If Zeichen.4 = 1 Then Set Db4dis Else Reset Db4dis
     If Zeichen.5 = 1 Then Set Db5dis Else Reset Db5dis
     If Zeichen.6 = 1 Then Set Db6dis Else Reset Db6dis
     If Zeichen.7 = 1 Then Set Db7dis Else Reset Db7dis

     ' höherwertiges nibble übertragen
     Set Enabledis
     Waitms 5
     Reset Enabledis
     Waitms 5

     ' Niederwertiges Nibble setzen
     If Zeichen.0 = 1 Then Set Db4dis Else Reset Db4dis
     If Zeichen.1 = 1 Then Set Db5dis Else Reset Db5dis
     If Zeichen.2 = 1 Then Set Db6dis Else Reset Db6dis
     If Zeichen.3 = 1 Then Set Db7dis Else Reset Db7dis

     ' Niederwertiges Nibble übertragen
     Set Enabledis
     Waitms 5
     Reset Enabledis
     Waitms 5

End Sub
Danke für eure Mühe gruß danie