closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

Setters und Getters auf EEPROM



pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1024
Registered: 02 / 2009
Homepage Private message
Subject: Setters und Getters auf EEPROM  -  Posted: 21.06.2019 - 11:21   -  
Hallo Leute,

ich habe meine Config im EEPROM vom XMEGA stehen, aktuell nutze ich zur Übernahme ins laufende Programm:

Code
procedure TuerBitCfg;   // setzte einzelne BIT Werte in CFG um
var
 wBufferCfg : WORD;
begin
//MX30
wBufferCfg:= CFG1.WM001E_Konfig1_MX030;
TuerMCfg.B_Hupe_immer_3min := BIT(  wBufferCfg.0);
TuerMCfg.B_AHM_FTTT := BIT(  wBufferCfg.1);
TuerMCfg.B_AHM_FTSS := BIT(  wBufferCfg.2);
...
end;


Und Arbeite dann nur noch mit dem im RAM stehende "TuerMCfg.", jetzt wollte ich das ganze etwas optimieren, in etwa so:

Code
property
  B_Hupe_immer_3min : boolean
    read GetB_Hupe_immer_3min
    write SetB_Hupe_immer_3min;

//===================================================
{ functions }
function GetB_Hupe_immer_3min : boolean;
var
 wBufferCfg : WORD;
begin
 wBufferCfg:= CFG1.WM001E_Konfig1_MX030;
  return( Bit( wBufferCfg, 0));
end;

procedure SetB_Hupe_immer_3min( NewVal : boolean );
var
 wBufferCfg : WORD;
begin
 wBufferCfg:= CFG1.WM001E_Konfig1_MX030;
   SetBit( wBufferCfg, 0, NewVal );
    CFG1.WM001E_Konfig1_MX030:=wBufferCfg;
end;


Leider lässt der Compiler keinen direkten Zugriff auf das EEPROM-Word zu, deswegen muss ich den Zwischenschritt mit dem umkopieren in dem "wBufferCfg " gehen.

Frage ist natürlich in wie weit das ganze dann überhaupt noch eine Optimierung bringt:

Warum lässt der Compiler diese Getter/Setter nicht im EEPROM zu?
Geschwindigkeit beim Zugriff?

Bringt die Idee überhaupt einen Vorteil (Speicher / Geschwindigkeit) oder gibt es einen besseren Lösungsansatz?

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 38
Posts: 232
Registered: 07 / 2013
Private message
Subject: Re: Setters und Getters auf EEPROM  -  Posted: 21.06.2019 - 17:09   -  
Meine Meinung:

Dein erstgenannter Code ist schneller und hat weniger EEprom Zugriffe.
Property ist eine schöne Sache, um die Lesbarkeit vom Code zu erhöhen. Ob der Aufwand gerechtfertigt ist, muss du selber entscheiden.

Richtig, der bit-Typ wird im EEPROM nicht unterstützt. Man kann nicht alles haben :-)

Gruß
This post has been edited 2-times. Last edit: 21.06.2019 - 17:12 by Thomas.AC.
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 16.07.2019 - 00:41