kollimann
25.07.2011, 15:32
Hallo,
ich habe hier ein merkwürdiges Problem. Controller ist ein Mega8
Ich möchte 27 Werte aus dem Eeprom lesen, das mach ich wie folgt
Dim Taste as long ' der Zaehler für die Tastendrücke=Speicherplatz
Dim Zaehler as long 'brauchen wir im Case.................
Dim Color_wert(27) As Byte ' das die Variable wo die Werte aus dem Eeprom rein sollen 27 Bytes für 27 Werte
Dim Save_wert(280) As Eram Byte At &H06 ' das die Deklaration fürs Eeprom, 280 lang für 10 x 27 Bytes
bla
bla
bla
Auswahl:
taste = taste+1
select case Taste
case 1
.....
case 2
.....
Case 7
Zaehler = 0
For I = 0 To 27 ' die ERSTEN 27 Werte aus der Variablen Color_wert
Color_wert(zaehler) = Save_wert(i)
Incr Zaehler ' Zaehler erhöhen das die Variable Colorwert auch den entsprechenden Wert an der richtigen Position bekommt
Next I
Case 8
Zaehler = 0
For I = 27 To 54
Color_wert(zaehler) = Save_wert(i)
Incr Zaehler
Next I
Case 9
Zaehler = 0
For I = 54 To 81
Color_wert(zaehler) = Save_wert(i)
Incr Zaehler
Next I
usw
usw
usw
'so dann gehts zur Ausgabe über UART
for i = 1 to 27
print color_wert(i)
das wars eigentlich schon !
Abgesehen das Color_wert natürlich bei 0 losgeht, erstmal egal
Das Problem, wenn im Eeprom bei Case 8 also von 27-54 nichts steht sollte ja eigentlich 255 ausgegeben werden, genau in diesem Fall wenn da nichts steht oder das gleiche wie bei Case 7 also 0-27 hängt sich alles auf.
Also Ausgabe wenn bei Taste 7, 27x255, jetz nochmal Taste also Taste=8 peng aufgehangen.
Wenn ich manuell verschiedene Werte da abspeicher gehts komischer weise.
Warum passiert das?
Es geht darum, wenn man an die entsprechende Stelle noch nicht gespeichert hat sollte eigentlich 0 ausgegeben werden, daher Füll ich den Eeprom beim ersten Boot mit 0 , aber das bringt nix, auch füllen mit 1 bringt nix, erst wenn wirklich unterschiedliche Werte drin stehen funktionierts.
Ich weiß keinen Rat mehr
DANKE für Eure Hilfe
Heiko
ich habe hier ein merkwürdiges Problem. Controller ist ein Mega8
Ich möchte 27 Werte aus dem Eeprom lesen, das mach ich wie folgt
Dim Taste as long ' der Zaehler für die Tastendrücke=Speicherplatz
Dim Zaehler as long 'brauchen wir im Case.................
Dim Color_wert(27) As Byte ' das die Variable wo die Werte aus dem Eeprom rein sollen 27 Bytes für 27 Werte
Dim Save_wert(280) As Eram Byte At &H06 ' das die Deklaration fürs Eeprom, 280 lang für 10 x 27 Bytes
bla
bla
bla
Auswahl:
taste = taste+1
select case Taste
case 1
.....
case 2
.....
Case 7
Zaehler = 0
For I = 0 To 27 ' die ERSTEN 27 Werte aus der Variablen Color_wert
Color_wert(zaehler) = Save_wert(i)
Incr Zaehler ' Zaehler erhöhen das die Variable Colorwert auch den entsprechenden Wert an der richtigen Position bekommt
Next I
Case 8
Zaehler = 0
For I = 27 To 54
Color_wert(zaehler) = Save_wert(i)
Incr Zaehler
Next I
Case 9
Zaehler = 0
For I = 54 To 81
Color_wert(zaehler) = Save_wert(i)
Incr Zaehler
Next I
usw
usw
usw
'so dann gehts zur Ausgabe über UART
for i = 1 to 27
print color_wert(i)
das wars eigentlich schon !
Abgesehen das Color_wert natürlich bei 0 losgeht, erstmal egal
Das Problem, wenn im Eeprom bei Case 8 also von 27-54 nichts steht sollte ja eigentlich 255 ausgegeben werden, genau in diesem Fall wenn da nichts steht oder das gleiche wie bei Case 7 also 0-27 hängt sich alles auf.
Also Ausgabe wenn bei Taste 7, 27x255, jetz nochmal Taste also Taste=8 peng aufgehangen.
Wenn ich manuell verschiedene Werte da abspeicher gehts komischer weise.
Warum passiert das?
Es geht darum, wenn man an die entsprechende Stelle noch nicht gespeichert hat sollte eigentlich 0 ausgegeben werden, daher Füll ich den Eeprom beim ersten Boot mit 0 , aber das bringt nix, auch füllen mit 1 bringt nix, erst wenn wirklich unterschiedliche Werte drin stehen funktionierts.
Ich weiß keinen Rat mehr
DANKE für Eure Hilfe
Heiko