AusgangsBit setzen ?

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

AusgangsBit setzen ?

 · 
Posted: 18.11.2014 - 07:52  ·  #1
Guten morgen,
ich Programmiere mir gerade ein kleines Tool um meinen AtMega selbst zu Programmieren.

$AC $53 $00 $00 Clocke ich so in den Atmel

Code

procedure Set_MOSI;
begin
  Incl(At_MOSI);
end Set_MOSI;

procedure Clr_MOSI;
begin
  Excl(At_MOSI);
end Clr_MOSI;

procedure Senden;
Var stelle : byte;
begin
//byte 1 senden
  stelle := 128;
  for i:= 1 TO 8 DO
    if (KumByt AND stelle) > 0 then Set_MOSI;  else Clr_MOSI;   ENDIF;
    Set_SCK;
    stelle := stelle div 2;
    Clr_SCK;
  ENDFOR;


usw. //byte 2 senden //byte 3 senden //byte 4 senden


Dies dauert mir aber alles zu lange, habt ihr eine andere Idee wie man es besser machen könnte ?
Ich überlege gerade ob man mit shl etwas machen könnte ? würde das überhaupt gehen ?

At_MOSI:= KumByt shl 1;


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

Re: AusgangsBit setzen ?

 · 
Posted: 18.11.2014 - 10:28  ·  #2
Hi.

Code

procedure Senden; 
Var i : byte; 
begin 
  for i:= 7 DownTO 0 DO 
    SetBit( AT_MOSI, Bit(KumByt, i )):
    Set_SCK; 
    // may need to add some NOP lines to slow down here! 
    Clr_SCK; 
  ENDFOR;
end; 


Also, remember to use the Optimiser and make i local - loops like this run MUCH faster if optimised.
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: AusgangsBit setzen ?

 · 
Posted: 18.11.2014 - 10:53  ·  #3
This might be slightly better
Code
procedure Senden;  
Var i : byte;  
begin  
  for i:= 7 DownTO 0 DO  
    Clr_SCK;  
    SetBit( AT_MOSI, Bit(KumByt, i )): 
    Set_SCK;  
  ENDFOR; 
  Clr_SCK;  
end;  


But only if you find you do need the NOP lines.
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: AusgangsBit setzen ?

 · 
Posted: 18.11.2014 - 11:45  ·  #4
Danke Merlin, ich verstehe zwar kein Englich aber dein Code verstehe ich.


:3some:
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: AusgangsBit setzen ?

 · 
Posted: 18.11.2014 - 14:35  ·  #5
Hi,

soll das etwa eine SPI Emulation sein?
Wenn ja, warum nicht den Soft-SPI Treiber benutzen?

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

Re: AusgangsBit setzen ?

 · 
Posted: 18.11.2014 - 19:39  ·  #6
Hallo Rolf,
ich habe auf meinen Projekt (Platine) mehrere AtMegas sitzen.
ich möchte nicht jedesmal das Gehäuse öffnen um die Atmels abzudaten sondern
setze mir eine USB mit einen kleinen Atmega der dann die anderen updatet.
Du wirst jetzt sagen, gibts doch schon für 20Euro bei ebay und co.

Ich sehe das als Gehirnjogging an. mir macht es spass sowas zu Programmieren.


Deine Frage?
>Wenn ja, warum nicht den Soft-SPI Treiber benutzen? <

Gleich mal im Handbuch nachschauen. =D>
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   109   123 · Page-Gen-Time: 0.024814s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI