www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 + externes EEprom + große Zahlen


Autor: n+peter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !

Ich möchte z.B. für einen AH-Zähler den letzten Wert (bis 6 Stellen) 
sicher zwischenspeichern, habe zum testen dafür ein kleines externes 
EEprom (24C01) an den Atmega8 verbunden, und mich mit aus anderen 
Beiträgen Bascom-Codes rumgespielt, sobald die Speicherwerte über die 
Variable Byte hinausgehen, wird es echt kompliziert, schon der ständige 
Variablenwechsel macht mich fertig, da die eine das nicht kann, die 
andere das wieder nicht.

Habe meine letzte Version eines Bascom-Programmes beigefügt, das 
funktioniert auch ganz gut (Zahl zerlegen - einspeichern - auslesen - 
zusammenbauen),
aber wenn ich dieses Programm verwende (> 3kB), bleibt für das 
eigentliche Programm kein Platz mehr.

Womöglich hat jemand eine einfachere, bessere Lösung, Bascom ist nicht 
gerade mein Fach, muss mir immer alles woanders rauspicken, aber C bzw. 
Asm ist totales chinesisch für mich.

mfg Peter

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieso speicerst du nicht einfach byteweise ab, also z.B. ne 32 bit-Zahl 
als 4 mal 1 Byte, sondern machst diesen Krampf mit Division durch 
Zehnerpotenzen?

Autor: Gast24 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn bei Basic "single" - ich schätze mal, das ist auch eine 
Gleitkommazahl?
Ideal für dich wäre ein long integer, also 64bit Ganzzahl. Ob es sowas 
in Bascom gibt? Ich glaube ja.
In C würde man das ganze dann in eine union schreiben und kann dann auf 
die einzelnen Bytes zugreifen, ganz ohne Rechnerei. Andersherum genauso.
Auf jeden Fall solltest du dich von den dezimalen Denkweise trennen :-)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: n+peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die einweiligen Antworten, warum ich nicht das und das mache 
?, deswegen frage ich ja hier nach, um vielleicht Beispiele zu bekommen, 
das es andere Möglichkeiten gibt, das weiß ich wohl, aber nicht welche, 
ich bin Bauarbeiter und Gelegenheitsbastler, und eben kein Programmgenie 
bzw. Computerelektroniker oder dergleichen, bitte um weitere Anregungen,
ich hab echt lange rumgesucht, aber eben noch nichts für mich 
verständliches gefunden,

mfg Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jede CPU arbeitet intern mit Binärzahlen.
Dein Bascom-Compiler wandelt also alle Zahlen, die Du dezimal oder als 
Kommazahl hinschreibst nach binär um.
Je nach Zahlenformat werden dafür 1..4 Byte benötigt.
Und erst die Ausgaberoutinen wandeln es extra für den Menschen nach 
dezimal um.

Es ist daher am effektivsten die Zahlen im EEPROM direkt im 
Lieblingsformat der CPU abzulegen, also als 1..4 Bytes.

In C nimmt man dafür einfach eine Union, wieviel Byte die Union groß 
ist, ermittelt der sizeof-Operator.

Ob Bascom sowas auch kann, weiß ich nicht. Ich kann kein Bascom.
Aber Bascom hat ja ne Hilfe und es gibt auch ein Manual und auch die 
Bascom Herstellerseite.

Das Manual hast Du bestimmt schon:

http://www.mcselec.com/index.php?option=com_docman...


Peter

Autor: Olaf Lindner (oli6691)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

schau mal in der Bascom - Hilfe nach DIM und dort speziell nach Overlay, 
das könnte die Lösung für dein Problem sein.

Cu Olaf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.