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


von A. Arndt (Gast)


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

von Peter D. (peda)


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

von A. Arndt (Gast)


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

von inoffizieller WM-Rahul (Gast)


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?

von A. Arndt (Gast)


Lesenswert?

und nu...?

wieviele sind ca. ?

gruss

von Markus (Gast)


Lesenswert?

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

von inoffizieller WM-Rahul (Gast)


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...

von Markus K. (markus-)


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

von A. Arndt (Gast)


Lesenswert?

Hallo,

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

Gruss
A. Arndt

von Markus K. (markus-)


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

von A. Arndt (Gast)


Lesenswert?

Hallo,

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

Gruss
A. Arndt

von Wegstabenverbuchsler (Gast)


Lesenswert?

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


war das jetzt eine Frage oder eine Fesstellung?

von A. Arndt (Gast)


Lesenswert?

Hallo,

eher eine Frage...

A. Arndt

von Markus K. (markus-)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.