das kann doch wohl nicht sein, oder??? heute ist mir aufgefallen, das
man in codevision nur ziemlich speicherintensiv eine einfache variable
auf dem lcd zeigen kann.
habe schnell einen vregleich gemacht und auch auf die platine getestet
-und siehe da (anhang):
bascom braucht dafür nur 634 bytes, codevision dagegen stolze 1368
bytes(684 words)!!!!
hm, ich habe doch nur einen kleinen tiny26 mit mikrigen 2kb flash, soll
ich den ganzen mc nur dazu benutzen, eine einfache zahl aufm lcd
darzustellen?? das kann doch nicht wahr sein!
noch dazu habe ich das lcd beim bascom nicht wie default beschrieben an
den tiny26-ports angeschlossen, was noch extra speicher belegt; bei
codevision dagegen schon, es gibt ja keine option, die lcd
pin-konfiguration frei zu bestimmen.
ich glaube, der vergleich ist korrekt; was denkt ihr darüber?? gibt es
eine bessere möglichkeit, sowas im codevision zu machen?
ich schätze mal, du hast printf() verwendet, ist ein ziemlich starker
Befehl mit vielen Möglichkeiten, bietet einiges mehr als das
Basic-übliche print. Bequemlichkeit hat seinen Preis, in diesem Fall
äußert sich das im hohen Speicherverbrauch. Aber es zwingt dich ja
niemand, diese Funktion zu benutzen. Einfach in Dezimalstellen
aufteilen, 30h dazu addieren und als einzelne Zeichen ausgeben - da
kommst du mit wenigen Bytes aus.
ja, ich habe sprintf() verwendet, wie auf dem anhang ersichtlich ist;
gebe ehrlich zu, kenne mich nicht richtig gut in codevision und c, aber
wie soll ich denn sonst den wert einer variable auf dem lcd bringen?
z.b. char k=8, wenn ich jetzt aber einfach lcd_putchar(k) schreibe, dann
habe ich aufm lcd asii zeichen #8 und nicht die zahl 8... deswegen habe
ich k vorher in string umgewandelt; kann ich vieleicht pointers anwenden
oder wie funktioniert das?
oh mein gott :))))
herzlichen dank für die hilfe @ mark & crazy horse, jetzt verstehe ich
langsam :) nun, irgendwie habe ich das gefühl , c wurde speziell dazu
erfunden, damit sich niemand ausser ausserirdische damit auskennt, eine
art modernes latein...
auf jeden fall danke für die rasche und kompetente hilfe, jungs!
Was soll das jetzt machen? Es würde sowieso nur funktionieren wenn 'k'
eine einstellige Zahl ist. Und dann ist 'k + 0x30' lang noch kein
String, sondern ein einzellner Character.
Wenn es die Funktion itoa(...) gibt nutze sie. Sonst kannst du es wie
schob erwähnt zu Fuß machen, % und / ...
uhuuuu, sasha, du bist der BESTE, danke!
das mit dem itoa() hat natürlich geklappt, wie habe ich diese funktion
doch übersehen :(( der code in codevision ist jetzt nur stolze 576
bytes, also im vergleich zu bascom (634bytes)
um ca. 10% weniger; das sieht jetzt gut aus, danke!