Hallo,
bisher hatte ich immer mit Readeeprom und Writeeeprom gearbeitet. Nun nutze ich die Eram Variablen.
Alles anzeigen
Es sollen Servopositionen für bestimmte Frequenzen geladen werden, siehe "Eeprom Daten laden".
Ist das Eeprom aber leer (z.B. das erste Array), dann sollen Standartwerte geladen werden und dann zugleich ins Eeprom abgespeichert werden. Die geladenen Standartwerte kann ich mir am LCD anschauen, da stimmen alle 38 Werte.
Resete ich aber den µC, dann lädt er die zuvor gespeicherten Werte aus dem Eeprom und sollte sie anzeigen. Er zeigt mir aber nur das erste Array, die 135 korrekt an. Die restlichen Werte sind nicht wie in der Datentabelle, siehe unten.
328.PNG
Selbst wenn ich die Werte mit z.B. Gs_(3) = Grad_servo_(3) manuell abspeichere und dann beim nächsten Start wieder lade, wird mir was anderes angezeigt.
Ich hatte mich an folgenden Beispiel orientiert:
Alles anzeigen
Danke für eure Hilfe.
bisher hatte ich immer mit Readeeprom und Writeeeprom gearbeitet. Nun nutze ich die Eram Variablen.
BASCOM-Quellcode
- Dim Gs_(38) As Eram Byte
- Dim Grad_servo_(38) As Byte
- Locate 1 , 1 : Lcd "Eeprom Daten laden"
- Waitms 200
- For F = 1 To 38
- Grad_servo_(f) = Gs_(f)
- Next
- If Grad_servo_(1) = &HFF Then
- Locate 2 , 1 : Lcd "Standartwerte laden"
- Waitms 200
- For F = 1 To 38
- Grad_servo_(f) = Lookup(f , Dta_grad)
- Next
- Locate 3 , 1 : Lcd "Eeprom Daten speichern"
- Waitms 200
- For F = 1 To 38
- Gs_(f) = Grad_servo_(f)
- Next
- End If
- Dta_grad:
- Data 0 , 135 , 75 , 50 , 135 , 75 , 155 , 130 , 75 , 50 , 50 , 25 , 25 , 240 , 180 , 140 , 130 , 100 , 75 , 50 , 90 , 0 , 25 , 70 , 50 , 40 , 0 , 20 , 185 , 165 , 140 , 135 , 115 , 100 , 90 , 75 , 60 , 50 , 40
Es sollen Servopositionen für bestimmte Frequenzen geladen werden, siehe "Eeprom Daten laden".
Ist das Eeprom aber leer (z.B. das erste Array), dann sollen Standartwerte geladen werden und dann zugleich ins Eeprom abgespeichert werden. Die geladenen Standartwerte kann ich mir am LCD anschauen, da stimmen alle 38 Werte.
Resete ich aber den µC, dann lädt er die zuvor gespeicherten Werte aus dem Eeprom und sollte sie anzeigen. Er zeigt mir aber nur das erste Array, die 135 korrekt an. Die restlichen Werte sind nicht wie in der Datentabelle, siehe unten.
328.PNG
Selbst wenn ich die Werte mit z.B. Gs_(3) = Grad_servo_(3) manuell abspeichere und dann beim nächsten Start wieder lade, wird mir was anderes angezeigt.
Ich hatte mich an folgenden Beispiel orientiert:
BASCOM-Quellcode
- $regfile = "m8def.dat"
- $crystal = 16000000
- $baud = 9600
- Dim B As Single
- Dim Ee_v As Eram Single
- Do
- 'Wert aus EEPROM in normale Variable laden und anzeigen
- B = Ee_v
- Print "Alter Wert: ";
- Print B
- 'Neuen Wert eingeben und abspeichern im EEPROM
- Input "Neuer Wert: " , B
- Ee_v = B
- Print "Wert ist im EEPROM gespeichert"
- Print "und bleibt beim Ausschalten erhalten"
- Wait 2
- Loop
Danke für eure Hilfe.