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
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?
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 :-)
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
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&task=doc_details&gid=140&Itemid=54 Peter
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.