closed

Loginbox

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


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


  •  

Variable in Userdevice an bestimmter Adresse legen



Lschreyer offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age:
Posts: 427
Registered: 02 / 2007
Private message
Subject: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 19.01.2019 - 18:30   -  
Im eeprom kann man mit

var
testarray[$05DC]: array[0..20] of word;

eine var an eine bestimmte Adresse legen.

Im Userdevice geht das scheinbar nicht, gibt es einen Weg das zu machen?
Hintergrund ist, dass ich am Anfang des Frams Einstellungen speichere, die nach und nach erweitert werden können. Das TestArray kann später evtl. auch größer werden.

Das obige TestArray soll bei einer Erweiterung der Einstellungen nicht überschrieben werden, also möchte ich das gerne in einen Bereich legen den ich sonst nicht nutze. Ich wollte dazu das Fram in 4 Blöcke teilen, und das TestArray in den letzten Block legen.

Ich erhalte jetzt eine Fehlermeldung, Error: Adress $05DC is below idatastart $2000
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5402
Registered: 03 / 2002
Homepage Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 20.01.2019 - 22:37   -  
Hallo Louis,
wie soll das gehen?
Der Compiler macht dem Programmer Vorgaben, Fuses, Flash, EEprom.
Er kann aber dem Programmer nicht beibringen dass da ein externes
FRAM programmiert werden soll. Wie denn auch ???
rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
Lschreyer offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age:
Posts: 427
Registered: 02 / 2007
Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 21.01.2019 - 10:21   -  
Vielleicht habe ich das falsch beschrieben.

Ich kann eine Variable ins EEprom legen mit
{$EEPROM}
Var testarray: array[0..20] of word;

Wenn ich nun möchte dass die Testvar an einer bestimmten Adresse im EEprom liegt definiere ich sie mit
{$EEPROM}
var testarray[$05DC]: array[0..20] of word;

Mit dem Devicetreiber kann ich Variablen auf ein externes Device legen, in meiem Fall in ein Fram.
Das klappt prima und sehr, vielen Dank dafür.

Ich mache es dann analog mit

{$UDATA}
Var testarray: array[0..20] of word;

Die Frage ist jetzt: Kann ich diese Variablen auch an eine bestimmte Adresse in UDATA legen?
go down go up
pvs-deck offline
Schreiberling
Avatar
Gender: male
Location: GERMANY 
Age: 47
Posts: 965
Registered: 02 / 2009
Homepage Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 21.01.2019 - 13:28   -  
Hallo Lschreyer,

lege doch einfach ein komplettes Array of Byte oder Word über den ganzen bereich. Dann kannst es mit dem Array adressieren.

Beispiel Array [0.254} of Word;

Und dein Testarray legst Du fix ab Array adresse 200 ab. Wenn Du hier mit Pointern arbeitest kannst Du alle möglichen Strukturen so ablegen zu zugreifen.

Oder habe ich das falsch verstanden?

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
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5402
Registered: 03 / 2002
Homepage Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 21.01.2019 - 14:05   -  
Aber werte oder konstante ins user Device abzulegen geht halt nur zur Laufzeit !!!!
Rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
Lschreyer offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age:
Posts: 427
Registered: 02 / 2007
Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 21.01.2019 - 14:26   -  
Thorsten, das ginge, aber dann brauche ich kein Userdevice.
Ich wollte halt gern wissen ob das mit dem Userdevice geht, anscheinend nicht.
Dann werde ich mir etwas anderes überlegen, wäre halt elegant gewesen.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 38
Posts: 225
Registered: 07 / 2013
Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 21.01.2019 - 19:38   -  
Hallo,
theoretisch sollte das mit banked device gehen.
Demo unter AVRcoAVRcoDemosBanking

Gruß
Thomas
go down go up
Lschreyer offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age:
Posts: 427
Registered: 02 / 2007
Private message
Subject: Re: Variable in Userdevice an bestimmter Adresse legen  -  Posted: 22.01.2019 - 17:04   -  
Ja, das könnte klappen, danke für den Tipp.
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: 21.02.2019 - 03:05