PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Typendeklarationen in Bascom möglich?



Hajo
14.03.2005, 14:48
Hallo,

ich will/muss aus Performance-Gründen eine alte Platine mit SAB80C537 gegen eine schnellere Variante austauschen. Die alte Soft habe ich mit dem dänischen (wie hieß der noch mal?) Pascal-Compiler erstellt. Für die neue Platine habe ich mir jetzt den Bascom-Compiler mit dem AT-Mega128 ausgeguckt. Meine alte Soft enthält diverse Typendeklarationen wie z. B.

Type Dataset = Record
Spannung : Array [1..mess_ort] Of Real;
Temperatur : Array [1..mess_ort] Of Real;
Uhrzeit : Array [1..messort] Of String;
End;

Geht so was ähnliches in Bascom überhaupt?

Danke für die Antworten im voraus!

Gruss

Hajo

uwegw
14.03.2005, 15:04
falls du bei pascal bleiben willst: auch für die avrs gibts nen pascal-compiler...
www.e-lab.de
die demoversion reicht schon für recht große sachen... und du köpnntest deinen alten code einfacher übertragen...

bascom hab ich vor längerer zeit mal ausprobiert aber nun benutze ich nur noch den compiler von e-lab, und manchmal nen bisschen assembler...

Hajo
14.03.2005, 15:16
Hallo uwegw,

mein Problem ist leider, dass die alte Soft compiliert schon 50k gross ist. Der Pascal-Compiler von E-Lab erzeugt in der Demo max. 4k-Code. Und die Vollversion ist auch nicht gerade preiswert. Insbesondere wenn man die Profiversion braucht, weil man noch eine Ethernet-Anbindung realisieren möchte!

Gruss

Hajo

uwegw
14.03.2005, 15:39
na dann...
aber bekomt man ethernet mit bascom hin? da ist doch bestimmt auch die vollversion nötig? aber ich glaub die war nicht ganz so teuer...

arrays gehen übrigens auch in bascom (siehe hilfedatei):

Arrays

An array is a set of sequentially indexed elements having the same type. Each element of an array has a unique index number that identifies it. Changes made to an element of an array do not affect the other elements.

The index must be a numeric constant, a byte, an integer , word or long.

The maximum number of elements is 65535.

The first element of an array is always one. This means that elements are 1-based.

Arrays can be used on each place where a 'normal' variable is expected.

Example:

'create an array named a, with 10 elements (1 to 10)
Dim A(10) As Byte
'create an integer
Dim C As Integer
'now fill the array
For C = 1 To 10
'assign array element
A(c) = C
' print it
Print A(c)
Next
'you can add an offset to the index too
C = 0
A(c + 1) = 100
Print A(c + 1)
End

Frank
14.03.2005, 16:39
Type Dataset = Record
Spannung : Array [1..mess_ort] Of Real;
Temperatur : Array [1..mess_ort] Of Real;
Uhrzeit : Array [1..messort] Of String;
End;

Geht so was ähnliches in Bascom überhaupt?

Danke für die Antworten im voraus!

Gruss
Hajo


Hallo,
benutzerdefinierte Record-Typen gibts leider nicht in Bascom, das ist doch mehr eine Sache von Pascal und C.
Die einzelnen Typen gibt dagegen gibts alle in Bascom. Statt Real musst du dort Single nehmen und bei String musst du Länge vorgeben, ansonsten ist alles ähnlich.
Du müsstest dich somit also schon ein wenig umgewöhnen wenn du gerne eigene Datentyp-Strukturen nimmst, aber läßt sich letzlich alles auch anders verwalten. Meist ist der Code auch etwas effizienter/kompakter wenn du keine eigenen Datentypen nutzt, Bascom ist ja bekannt dafür das sehr kompakter Code erzeugt wird. Ist eben immer ein Kompromiss, Pascal ist sehr schön programmierbar (kaum eine Sprache ist besser lesbar) aber leider ist Code in der Regel nicht so sehr kompakt. Assembler hat den kompaktesten Code und ist dafür sehr zweitaufwendig und schlecht lesbar. Und C und Basic liegen dazwischen.

Gruß Frank