mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wieviele Variablen sind eigentlich möglich unter BASCOM ?


Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich schreibe gerade eine Steuerung mit BASCOM und habe viele
Integer-Variablen (0-32xxx), wieviele kann ich eigentlich verwenden
unter BASCOM ? Chip : Mega 16 bzw. 32 !

Kann man Speicherbereiche dafür freigeben und wie läuft das ?

Gruss
A. Arndt

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch unter Bascom sollte es eine Report-Datei geben, die die Auslastung
anzeigt.

Ansonsten hängt es davon ab, ob die Variablen global oder lokal sind.
Lokale Variablen kann man viel mehr verwenden, als physisch SRAM
vorhanden ist.

Ich hab z.B. auf nem AT89C4051 etwa 200 Bytes Variablen gehabt, obwohl
nur 128 Bytes SRAM drin sind. Ich kann allerdings nur C, kein Bascom.


Peter

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann den Variablen denn ersehen, ob global oder lokal, ich gebe den
DIM-Befehl als Integer an im Startbereich meines Programms, da ich viele
ADC auslese mit 10-Bit-Auflösung, , und wo finde ich die Report-Datei?

Gruss
A. Arndt

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>DIM-Befehl als Integer an im Startbereich

Das werden dann vermutlich globale Variablen sein.

Integer haben übrigens einen Wertebereich von 16 Bits.
Das führt zu Zahlen zwischen 0 und 65535 oder -32768 bis 32767.

>wo finde ich die Report-Datei
steht sowas nicht im Handbuch zu Bascom?

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und nu...?

wieviele sind ca. ?

gruss

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du die Variablen am Programmanfang angibst, dann sind sie global
und Du kannst etwa soviele Anlegen wie Du RAM hast.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Du kannst etwa soviele Anlegen wie Du RAM hast.
Ohne Stack wird das vielleicht so sein...Sobald eine Sub-Routine
aufgerufen wird, sind es ca. 40 Bytes weniger...

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ohne Stack wird das vielleicht so sein...Sobald eine Sub-Routine
>aufgerufen wird, sind es ca. 40 Bytes weniger...

40 Bytes sind bei 1KB RAM 4%. Das ändert also nichts an meiner Aussage.
Und wenn er alle Variablen global hält ist er sicher auch kein
Funktionen-Fetischist.

Markus

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also wären das dann ca. 1000 Stück abzgl. ver chipinternen
Speicherzellen...

Gruss
A. Arndt

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine 16-Bit-Integer hat 2 Byte, d.h. bei 1KB RAM sind das 500 Variablen
und bei 2KB RAM eben 1000. Wie groß der Stackbedarf ist hängt davon ab,
wie viele Variablen Du in einer Funktion benutzt und ob Du von einer
Funktion aus weitere Funktionen benutzt. Die Bascom-Funktionen brauchen
natürlich auch noch ein bischen Speicher.

Markus

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

aber 100 Integer Variablen wären ja kein Problem...

Gruss
A. Arndt

Autor: Wegstabenverbuchsler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hallo,
> aber 100 Integer Variablen wären ja kein Problem...
> Gruss
> A. Arndt


war das jetzt eine Frage oder eine Fesstellung?

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eher eine Frage...

A. Arndt

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne ja Deinen Programmierstil nicht, aber vermutlich sind 300 oder
400 kein Problem auf einem Mega16.

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.