SD Card auslesen

  • 1
  • 2
  • Page 2 of 2
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 767
Registered: 06 / 2013
Subject:

Re: SD Card auslesen

 · 
Posted: 01.06.2020 - 11:21  ·  #9
Ich mache mal kein neues Topic auf und schreibe hier.
Ich möchte eine file of text auslesen und habe das Programmiert.

Code


Procedure MMC_Datei_Read;
var len : byte;
Begin
  SendStr:= '';
  if F16_CheckDisk = true then
   F16_FileSeek (f,0);
   while not F16_EndOfFile(f) do
        Readln(f, SendStr);
        TxBlock(@SendStr, word(len));
    endwhile;
  endif;

in der file steht zum testen
123456789012345678901234567890

Wenn ich mir jetzt den RxBuff unter Delphi anschaue
RxBuff[0] hier steht lo byte von count
RxBuff[1] hier steht hi byte von count
RxBuff[2] und ab hier sollte das erste Byte oder Zeichen stehen also eine 1
aber hier steht die länge des strings drin.
RxBuff[3] und hier steht dann die 1
RxBuff[4] = 2
u.s.w.

Warum wird denn mit TxBlock(@SendStr, word(len)); auch SendStr[0] kopiert ?

Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: SD Card auslesen

 · 
Posted: 01.06.2020 - 17:09  ·  #10
Hi Frank,

was ist denn, wenn du die serielle mal über ein Terminalprogramm abhörst? Was kommt da an? Ich hab (leider?) kein Delphi, aber vielleicht wird damit automatisch auch die Länge einer Übertragung zur Verfügung gestellt?

Harry
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: SD Card auslesen

 · 
Posted: 01.06.2020 - 17:21  ·  #11
Hallo Frank,

wenn Du einen String verarbeitest, dann ist es ein String. Dieser hat im AVRCO immer die Längenangabe unter [0], Du sagst dem Compiler ja sogar, das er diesen mitkopieren soll:

Code
TxBlock(@SendStr, word(len));


Der Pointer auf dem String liegt immer ab Adresse "[0]", wenn Du das nicht möchtest, musst Du es wie folgt anpassen:

Code
TxBlock(@SendStr+1, word(len));


Dann ist die Längenausgabe nicht dabei.

Du kannst aber auch im Delphi einfach diese "Alten", PascalString verwenden und verarbeiten. Diese nennen sich (ab Delphi 2007) dann Typ "ShortString"

Thorsten
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 767
Registered: 06 / 2013
Subject:

Re: SD Card auslesen

 · 
Posted: 01.06.2020 - 17:31  ·  #12
Danke Thorsten das war es. Jetzt gehts super danke!

TxBlock(@SendStr+1, word(len));
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: SD Card auslesen

 · 
Posted: 01.06.2020 - 19:05  ·  #13
In Pascal gehört das längenbyte @$0 immer zum string dazu !!!!
rolf
  • 1
  • 2
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   95   109 · Page-Gen-Time: 0.028464s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI