PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Speicherplatzbedarf



Import-Script
23.03.2004, 20:48
Hallo! <BR> <BR>Da das Forum f&uuml;r Programmierung nicht funktioniert, poste ich mal hier. <BR> <BR> <BR>Wie man anderen Teilen des Forums entnehmen kann, bin ich am Bau eines Ladegerätes. <BR>Jetzt hätt ich da nur eine theoretische Frage, die in diesem Fall nicht von großer Wichtigkeit ist, nur interessehalber. <BR> <BR>Es soll mittels 8051 1LCD <BR>4Tasten <BR>2DACs &#40;IIC Bus&#41; <BR>1ADC &#40;SPI Bus&#41; <BR>1 eeprom &#40;IIC Bus&#41; <BR>mittels Tastengef&uuml;hrter Men&uuml;f&uuml;hrung angesteuert werden. <BR> <BR>Wenn ich das ganze in C programmiere komm ich da locker auf 4 - 6 k Speicherplatz, und das ohne Text f&uuml;r das Men&uuml;. <BR> <BR>Ist das ein realistischer Wert, oder hab ich da totalen Mist programmiert? <BR> <BR>Wie groß, besser gesagt wie klein glaubt Ihr kann man sowas bei halbwegs sauberer Programmierung hinkriegen? <BR>Urspr&uuml;nglich wollte ich ja 89c4051 verwenden, aber der hat eben nicht genug Speicher, zumindest bei meiner Programmierung. <BR> <BR>mfg <BR>hannes

Import-Script
23.03.2004, 20:52
Redest du vom C-Code oder vom ASM-Code?

Import-Script
23.03.2004, 20:56
Hallo, <BR>zu dem Speicherplatz kann ich so direkt nichts sagen. <BR>Aber vieleicht kannst du den ADC und den DAC durch einen PCF8591 ersetzen. Der wird an den IIC Bus angeschlossen, hat 4 analoge eingänge und einen Ausgang. <BR>Dann sparst du dir zumindest die SPI ansteuerung. <BR>Mfg, <BR>Kurt

Import-Script
23.03.2004, 21:57
hi, <BR> <BR>ist dein HEX-file 4-6k ? <BR>effektiver speicherbedarf ist deutlich geringer! <BR>etwas optimieren...dann passt es in den 89C4051 <BR> <BR>ed

Import-Script
23.03.2004, 22:14
Hi, <BR> <BR>probier auch mal mit den Einstellungen rum. Man kann ein C-Prog drastisch auf kosten der Laufzeit verkleinern, in dem jeder Befehl nur 1x im SPiecher steht und als unterprog aufgerufen wird. Daf&uuml;r kann es neben langsamer Laufzeit auch zu excessiver Stcknutzung kommen, also weniger RAM. <BR> <BR>Auch sollte man pr&uuml;fen, ob mathematische Verkn&uuml;pfungen nicht auch als Binärmathematik dargestellt werden kann. &#40;z.B. Shift und UND7ODER Verkn&uuml;pfungen&#41; <BR>Auch bei den variabeln schaue, ob Du die Wortbreite auf 8-Bit verkleionern kannst - 16 Bitoperationen fressen viel Ram und vor allem ROM. <BR> <BR>Wenn Du uns das Prog mal zeigst, könen wir mal sehen, was sich einsparen lässt. <BR> <BR>Gruß <BR>Elmar

Import-Script
23.03.2004, 22:26
Man kann viel einsparen, wen man kein float und nicht printf / scanf verwendet. <BR> <BR>Ich nehme je nach benötigter Genauigkeit int oder long und denke mir dann einfach die Kommastelle. <BR> <BR> <BR>Peter <BR>

Import-Script
24.03.2004, 14:14
Hallo <BR> <BR>Danke mal f&uuml;r die Antworten. <BR>Wie gesagt, jetzt stehen mir eh 32k zur Verf&uuml;gung, also kein Problem. <BR>Nur wollte ich eben wissen ob das so ungefähr hinkommt. <BR>Nat&uuml;rlich nutze ich faul wie ich bin printf und alles andere was c so zu bieten hat. <BR>Die Filegröße ist die tatsächliche die ich in den uC schreibe, also nicht das HEX file. <BR> <BR>Das Programm ist noch nicht fertig, das kann noch dauern, aber wenn es mal soweit ist stelle ich es gerne mal online um kritisiert zu werden, man soll ja auch was lernen. <BR> <BR>mfg <BR>hannes

husky2
04.04.2004, 23:07
Hallo!

Endlich bin ich jetzt so weit, und hab schon mal einen Teil meines Programms geschrieben.

Natürlich treten da schon wieder Optimierungsfragen auf.
Im Anhang ist das main.c inkludiert.

Es stellt sich folgende Frage: Wie programmiert man am schönsten eine Menüführung?

Es stehen 4 Tasten zur Verfügung, welche schon ausprogrammiert sind, also diese Funktion funktioniert schon.
Nur wie hüpft man elegant von einem Menüpunkt zum anderen?

Ich weiß, ich verwende hier den printf Befehl und auch float für Akkuspannung und so,obwohl man das ja auch mit 8Bit lösen könnte, aber ich bin eben programmierfaul!

mfg
hannes