Problem mit Programm

Gast #2469503
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Programm geschrieben, welches Messwerte in ein EEPROM 
(Microchip 24FC1025) speichert und wieder zurückliest.
Leider ist das Ergebnis nicht ganz das, was ich mir vorgestellt habe. 
Angezeigt wird immer der letzte Datensatz, was nicht korrekt ist.

Ich habe das mal in das GCC-Forum gestellt, da die Hardware etc. 
funktioniert.

Hier die Programmausgabe und anbei der Source-Code.
1
write_data_to_eeprom: write_buffer_len = 28, block = 0, page = 0,0  -->15:46:19,25.9,25.9,26.0,26.0
2
write_data_to_eeprom out: write_buffer_len = 28, block = 0, page = 0,0  -->15:46:19,25.9,25.9,26.0,26.0
3
write_data_to_eeprom: write_buffer_len = 28, block = 0, page = 0,1  -->15:46:34,25.9,25.9,26.0,26.0
4
write_data_to_eeprom out: write_buffer_len = 28, block = 0, page = 0,1  -->15:46:34,25.9,25.9,26.0,26.0
5
write_data_to_eeprom: write_buffer_len = 28, block = 0, page = 0,2  -->15:47:04,25.9,25.9,26.0,26.0
6
write_data_to_eeprom out: write_buffer_len = 28, block = 0, page = 0,2  -->15:47:04,25.9,25.9,26.0,26.0
7
write_data_to_eeprom: write_buffer_len = 28, block = 0, page = 0,3  -->15:47:34,25.9,25.9,26.0,26.0
8
write_data_to_eeprom out: write_buffer_len = 28, block = 0, page = 0,3  -->15:47:34,25.9,25.9,26.0,26.0
9
readpage in: write_buffer = 154803, len=6, i=0
10
readpage break: write_buffer = 11115:47:34,25.9,25.9,26.0,26.0, len=31, i=31
11
readpage out: write_buffer = 11115:47:34,25.9,25.9,26.0,26.0, len=31, i=31
12
writesd block:0 page:0 -->11115:47:34,25.9,25.9,26.0,26.0 (31)
13
readpage in: write_buffer = 11115:47:34,25.9,25.9,26.0,26.0, len=31, i=0
14
readpage break: write_buffer = 1115:47:34,25.9,25.9,26.0,26.0, len=30, i=30
15
readpage out: write_buffer = 1115:47:34,25.9,25.9,26.0,26.0, len=30, i=30
16
writesd block:0 page:1 -->1115:47:34,25.9,25.9,26.0,26.0 (30)
17
readpage in: write_buffer = 1115:47:34,25.9,25.9,26.0,26.0, len=30, i=0
18
readpage break: write_buffer = 115:47:34,25.9,25.9,26.0,26.0, len=29, i=29
19
readpage out: write_buffer = 115:47:34,25.9,25.9,26.0,26.0, len=29, i=29
20
writesd block:0 page:2 -->115:47:34,25.9,25.9,26.0,26.0 (29)
21
readpage in: write_buffer = 115:47:34,25.9,25.9,26.0,26.0, len=29, i=0
22
readpage break: write_buffer = 15:47:34,25.9,25.9,26.0,26.0, len=28, i=28
23
readpage out: write_buffer = 15:47:34,25.9,25.9,26.0,26.0, len=28, i=28
24
writesd block:0 page:3 -->15:47:34,25.9,25.9,26.0,26.0 (28)
25
write_data_to_eeprom: write_buffer_len = 28, block = 0, page = 0,4  -->15:48:05,25.9,25.9,26.0,26.0
26
write_data_to_eeprom out: write_buffer_len = 28, block = 0, page = 0,4  -->15:48:05,25.9,25.9,26.0,26.0
27
write_data_to_eeprom: write_buffer_len = 28, block = 0, page = 0,5  -->15:48:34,25.9,25.9,26.0,26.0
28
write_data_to_eeprom out: write_buffer_len = 28, block = 0, page = 0,5  -->15:48:34,25.9,25.9,26.0,26.0
Angehängte Dateien:
Gast #2469553
Lesenswert?
• ▲
▼
Hallo,

was sollen wir jetzt tun,

- erraten wie deine Klasse aufgebaut ist
- erraten welche Methoden du in welcher Reihenfolge aufrufst ???
- erraten wie .....
.
.
   bitte keine Ratespiele

eine genaue Frage stellen und alle nötigen Quellen zeigen anhand man 
dein  Problem nachvollziehen kann !!!!
Gast #2469653
Lesenswert?
• ▲
▼
Das Problem ist folgendes:

Es wird ein String (15:47:34,25.9,25.9,26.0,26.0) weggeschrieben, aber 
beim Lesen des Strings werden scheinbar führenden "1" eingefügt. 
Außerdem ist der eingelesene String immer der letzte, der geschrieben 
wurde.

Ich würde mich freuen, wenn jemand über mein C-Programm schauen könnte, 
ob ich da fehlerhaft programmiert habe.

Interessant sind die Funktionen readpage und  write_to_sd.

Vielen Dank!
Gast #2470371
Lesenswert?
• ▲
▼
Das Problem ist gelöst. Die Adressierung des Data-Pointers für das 
EEPROM war nicht ganz korrekt. Ein Multiplizieren mit 128 wirkte Wunder 
:-)

Vielen Dank an alle, die sich die Mühe gemacht haben in den Code zu 
schauen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.