float's in den Flash

Gast #499732
Lesenswert?
• ▲
▼
Hallo miteinader,

das ist jetzt bestimmt für euch ganz einfach, aber ich weiss nicht wie.
Also ich habe zwei Funktioen SetWordFlash und GetWordFlash, damit kann 
ich word Variablen in den Speicher schreiben. Aber wie muss ich das 
machen wenn ich Kommazahlen in den Speicher schreiben will? Kann man die 
irgend wie umwandeln und dann wieder zurückwandeln? Ich programmiere in 
C mit dem Codewarrior.

Danke, Maike
Persönliche Seite #499741
Lesenswert?
• ▲
▼
Jedes im Speicher vorhandene Objekt, sei es eine Variable vom Typ 
uint8_t, int32_t, float oder auch ein String, ist letztlich nur eine 
Folge von einem oder mehreren Bytes im Speicher. Und als genau diese 
kann so ein Objekt auch ins Flash geschrieben werden.


Das kann dann in etwa so aussehen:
1
float Wert;
2
uint8_t* pSpeicher;
3
pSpeicher = (uint8_t *) &Wert;
4

5
for (i = 0; i < sizeof (float); i++)
6
{
7
  write_byte_to_flash(pSpeicher[i], StartadresseImFlash + i);
8
}

(Hier mal angenommen, daß die Flash-Beschreibe-Funktion als ersten 
Parameter das zu schreibende Byte und als zweiten Parameter die Adresse, 
an die dieses Byte geschrieben werden soll, erwartet)

Und umgekehrt siehts ganz genauso aus:
1
float Wert;
2
uint8_t* pSpeicher;
3
pSpeicher = (uint8_t *) &Wert;
4

5
for (i = 0; i < sizeof (float); i++)
6
{
7
  pSpeicher[i] = read_byte_from_flash(StartadresseImFlash + i);
8
}

(hier mal angenommen, daß die Flash-Lese-Funktion als Parameter die zu 
lesende Adresse übergeben bekommt und als Ergebnis das gelesene Byte 
liefert)
Gast #499785
Lesenswert?
• ▲
▼
Hallo Rahul,

Durch die Auslese Prozedur steht ab der Startadresse von pSpeicher die 
Float Zahl z.B als abcd 1234 0000 0001.
Jetzt möchte ich aber gerne das ganze wieder als float Variable. Dazu 
muss ich doch erst noch was machen, oder hab ich da ein Brett vorm Kopf?

Danke, Maike

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.