Forum: Compiler & IDEs Problem mit Programm


von C-Anfänger (Gast)


Angehängte Dateien:

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

von Stefan (Gast)


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 !!!!

von C-Anfänger (Gast)


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!

von Peter D. (peda)


Lesenswert?

Falsches File.

24FC1025 != DS1820


Peter

von C-Anfänger (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.