molleonair
19.02.2006, 10:25
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
$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
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
$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