SoftSPI kein Signal

  • 1
  • 2
  • 3
  • Page 2 of 3
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 14.12.2017 - 19:16  ·  #9
Hallo Harry
zuerst wird das Bit ausgegeben dann der clock Puls
$AA ergibt bei msb zuerst eine 1 und
bei lsb zuerst eine 0.
rolf
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 18.12.2017 - 06:42  ·  #10
Die Procedure SPIout1 (source : pointer; count : word) funktioniert bei mir auch nicht.

All,
das muss ich korrigieren.
Wenn ich z.b. ein Array zur Laufzeit beschreibe, dann funktioniert die Ausgabe mit SpiOut1(@WSData,3) oder SpiOut1(@WSdata,sizeof(WSdata) doch einwandfrei.
Auch die Ausgabe des Array als structconst aus dem Flash funktioniert einwandfrei.

golf
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 18.12.2017 - 09:52  ·  #11
@golf Surely a structconst is in RAM, not Flash?
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 18.12.2017 - 17:30  ·  #12
Merlin
thanks, all ok.
golf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 18.12.2017 - 18:37  ·  #13
Hi golf,

ich habs doch mitm Oszi kontrolliert und es kam nichts. Aber ich probier es nochmal aus.

Harry

... hab ich was verpennt? Darf das Array nicht im Flash als Konstante liegen?
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 18.12.2017 - 19:35  ·  #14
Hallo Harry,
nein, darf es nicht denn einem Pointer sieht man nicht an dass er
ins Flash zeigen soll. Wenn das array allerdings ein structconst ist,
dann liegt das array schlussendlich doch im RAM.

rolf
golf
Benutzer
Avatar
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 19.12.2017 - 08:10  ·  #15
Hallo Harry,
ich hab mal nachgeschaut, wie ich das vor Jahren gemacht hab mit recht großen Arrays aus dem Flash. Das geht vielleicht auch viel einfacher, aber Hauptsache es funktionierte bei mir.

procedure SpiOutArray(SpiArray:Pointer; Size:word);
var
p:pointer;
begin
p:=SpiArray;
for w:= 1 to Size do
R:= Flashptr(p)^;
SPIOutByte1(R);
inc(p);
endfor;
p:=nil;
end;

die Ausgabe der Arrays dann mit:

SpiOutArray(@WSData,sizeof(WSData));

golf
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: SoftSPI kein Signal

 · 
Posted: 19.12.2017 - 09:47  ·  #16
Moin Harry,
Code

  const
     WSData : Array[0..7] of Byte   = ($A1, $55,..);    // Flash const
  structconst
    WSDataR : Array[0..7] of Byte   = ($A1, $55,..);    // Flash const wird beim Start ins RAM kopiert
  //.....
    SpiOut1(@WSData,3) ;                  // hier zeigt der Pointer in das RAM was nicht funzt

    SpiOut1(FlashPtr(@WSData),3) ;   // hier zeigt der Pointer ins Flash aber "SPIOut1" ganz unten weiß da nichts mehr von und greift wieder auf das RAM zu

   SpiOut1(@WSDataR,3) ;                // das funzt aus dem RAM

   // oder so für größere RAM Blöcke
   procedure SPIout1Flash(pData: pointer; Count: byte); 
   var
     idx   : byte; 
   begin
    for idx:= Count downto 0 do 
      SPIout1(FlashPtr(pData)^); 
      Inc(pData); 
    endfor;  
   end;

   SpiOut1Flash(@WSData,3) ;  // das funzt

  // aus Flash herraus ist natürlich etwas langsamer spart aber RAM


  


miparo
  • 1
  • 2
  • 3
  • Page 2 of 3
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: 15 · Cache Hits: 14   138   152 · Page-Gen-Time: 0.03765s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI