PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme mit print...



Bluesmash
04.08.2005, 23:55
hallo zusammen

Print var

solange in meinem programm "var" als byte deklariert ist funktioniert es... aber sobald ich "var" als word oder grösser deklariere funktioniert es nicht mehr und ich bekomme folgenden fehler beim compilieren:
Error:61 Line: 627 Label not found [_PRINTWORD ]

warum das?

mfg bluesmash

Marco78
05.08.2005, 04:09
Ohne den Code zu sehen würde ich sagen du hast eine LIB eingebunden die WORDs nicht unterstützt. Steht bei dir im Listings was von MSCBYTES.LBX oder so ähnlich? Wenn ja, dann die Zeile löschen und es könnte klappen.
Falls nicht wäre es hilfreicher den Code zu sehen.

Bluesmash
05.08.2005, 12:15
ja die zeile hab ich drin... aber brauch ich die nicht für das RC5? oder für was ist das? ich habe das in einem beispielprogramm für RC5 abgeschaut...

mfg bluesmash

Marco78
05.08.2005, 20:26
Der Nachteil wenn man einen AVR mit einer Hochsprache programmiert ist der, das man nicht sieht was tatsächlich in den Flash geschrieben wird.
Die Hochsprache (Basic, C++, ...) muss ja für den Prozessor verständlich übersetzt werden. Das übersetzen erzeugt manchmal einen größeren und umständlicheren Code als wenn man alles selbst in Assembler geschrieben hätte. Mit BASCOM lässt sich der Code mit einigen Trick und mitgelieferten LIBs verkleinern. Die MSCBYTES.LBX ist eine LIB die einen kleiner Code erzeugt. Sie optimiert irgendwie das Handling der Variablen. Allerdings sind dann nur noch Variablen bis Byte möglich. Word und 'größere' werden dann nicht mehr unterstützt.
Ich selbst hatte diese Fehlermeldung auch schonmal und eine Frage was das Label _PRINTWORD zu sagen hat bleib hier im Forum leider unbeantwortet. Durch probieren und Hinweise von einer englischsprachigen Seite habe ich dann herrausgefunden was die MSCBYTES bewirkt.

Für RC5 brauchst du diese LIB nicht. Wenn dir Variablen bis Byte reichen kannst du mit der LIB aber einen kleineren Code erzeugen und ggf. dein Programm in einen kleineren (und evtl. günstigeren) AVR flashen.

Du kannst ja mal die Größe des Programmcodes mit und ohne MSCBYTES vergleichen. (Sofern du nur Var bis Bytes hast).

Bluesmash
05.08.2005, 22:51
vielen dank für deine ausfühliche antwort! ich werde es dan mal ausprobieren sobald ich zeit habe...

gruss bluesmash