www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Vergleich BASOM-CODEVISION


Autor: emil (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C:

void main(void)
{

// LCD module initialization
lcd_init(20);
lcd_clear();

while (1)
      {
      char k=8;
      lcd_gotoxy(7,1);
      lcd_puts(k+0x30);
      };
}

Grüße Mark.

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 / ...

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

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.