PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit AVR-DOS (Binär lesen)



MrNiemand
18.12.2008, 12:28
Hallo zusammen,

ich verwende die AVR-DOS Library von Ulrich Vögel. Ich habe aber ein komisches Problem mit dem Befehl Get.
Wenn ich die Daten Byteweise auslese, scheint alles in Ordnung zu sein. Wenn ich aber 32Bytes auf einmal lesen will, lese ich z.b. am Anfang einer Datei nur 0 (obwohl dort definitv Werte <>0 sind). Ich verwende 2 frisch formatierte SD Karten mit Fat16 und ein paar Testdateien).

Hier der Testsource Ausschnitt:

Dim Mp3_cnt0 As Long
Dim Mp3_templong0 As Long
Const Mp3_sendbufferlen=32
Dim Mp3_sendbuffer(mp3_sendbufferlen) As Byte

Byteweise:
Mp3_templong0 = Lof(#filehandle)
For Mp3_cnt0 = 1 To Mp3_templong0 Step Mp3_sendbufferlen
For Test1 = 1 To Mp3_sendbufferlen
Get #filehandle , Mp3_tempbyte0 , , 1
Mp3_sendbuffer(test1) = Mp3_tempbyte0
Next Test1
Next

32Byte weise:
Mp3_templong0 = Lof(#filehandle)
For Mp3_cnt0 = 1 To Mp3_templong0 Step Mp3_sendbufferlen
Get #filehandle , Mp3_sendbuffer(1) , , Mp3_sendbufferlen
Next

filehandle ist von einer Sub übergeben, aber auch wenn ich z.b. fest 10 setze, macht das keinen Unterschied. Vorab bin ich auch schon mit seek explizit auf das erste Byte gesprungen, aber auch hier keine Änderung.

zur Info: $hwstack = 128, $swstack = 128,$framesize = 128. das sollte doch groß genug sein? (ich verwende einen M644P bei dem laut compile ergebnis noch ca 1400Bytes Ram frei sind).
Was mache ich falsch?

Danke für die Hilfe schonmal vorab...