PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR-DOS - Fehler wenn Write mit einer Single-Var genutzt wird



Dani-Bruchflieger
12.02.2012, 12:40
Hi,

ich habe gestern mich mal an dem AVR-DOS versucht. Ziel ist es einen Datenlogger aufzubauen, der Daten, die ihm per UART übergeben werden, in ein Text-file auf einer SD-Karte abzulegen, so daß diese später z.B. nach Excel importiert werden können.

Das habe ich u.a. mit dem Write-Befehl versucht, aber sobald ich ihm eine Single-Variable übergeben habe, kam beim Compilieren ein Fehler der frei wiedergegeben so heißt: "Label not found ... _ftoa ..."


in der AVR-DOS.LBX habe ich mit der Suche - Funktion diesen Code gefunden:


_FileWriteDecSingle:
loadadr ___strbuf , X
call _FSRAMA1
call _ftoa
rjmp _FileWrite_StrBuf
[end]

hier wird das fehlende Label aufgerufen, wenn Single geschrieben werden sollen - nur dieses Label habe ich nirgendwo anders im Programm-code gefunden - fehlt also wirklich...

Da ich hier im RN-Forum bisher immer Hilfe bekommen habe, auch hierzu die Frage in die Runde - kann mir jemand helfen?

MagicWSmoke
13.02.2012, 10:35
Würde mal die Bascom-Version updaten, das dürfte das Problem beheben. _ftoa ist, wie's der Name schon sagt, eine Konvertierungsroutine für Fließkomma zu Ascii, das musst Du ja sowieso machen, wenn Du in ein Textfile speicherst. _ftoa befindet sich in keiner externen Lib, sondern ist Bestandteil des Compilers und wird von diesem eingebunden sobald benötigt.
Nun scheint bei Dir der Compiler nicht zu erkennen, dass diese von der AVR-Dos Lib benötigt wird und bindet sie nicht ein. Du könntest das Problem umgehen, indem Du ganz zu Anfang einen Dummyaufruf machst:

Dim Dum_Sng As Single
Dim Dum_Str As String * 16
Dum_Str = str(Dum_Sng)
Sinnvollerweise dafür Variablen verwenden, die bereits im Code existieren.
Wobei ein Update aber das Problem ohnehin beseitigen sollte.