Varaiblen definition gehen beim aufruf der funktion verloren

Gast #432229
Lesenswert?
• ▲
▼
Kann mir einer sagen wie man variablen zuweist und sie dann nach x 
beliebiger zeit (solange der AVR läuft) wieder abfragt uun diese noch 
den wert haben wo sie zuletzt zugewiesen wurden.


wie könnte man sowas machen.

ich lese einmal einen wert aus (SPI FLash) und speicher ihn mir in eine 
Variable C1.

nun habe ich Funktionen die auf c1 zugreifen müssen um berechnungen 
auszuführen.

das klappt aber nicht C1 hat dann nur unsinniges zeug

ich schreibe in C1= 23499

beim aufruf bekomme ich C1=786

ohne das ich C1 wieder zugewiesen habe.

Was mache ich falsch

static unsigned long c1;

so habe ich es deklariert.

zuweisen C1=23499;
lesen unigned long wert=C1;

wert=786;
Gast #432286
Lesenswert?
• ▲
▼
Hi,
wenn Du den Code hier mal komplett reinstellst, dann kann man auch sehen 
worans liegt ;)

Funktionieren sollte in jedem Falle:
1
// globale Variable
2
static unsigned long c1;
3

4
void readFlash()
5
{
6
  c1 = getFlash(xyz);
7
}
8

9
void showc1()
10
{
11
 printf("%l", c1)
12
}

Achte auf Groß-/Kleinschreibung und vermeide lokale Varibalen in den 
Unterroutinen mit gleichem Namen.

Fehler wäre z.B.:
1
void readFlash()
2
{
3
  static unsigned long c1;
4
  c1 = getFlash(xyz);
5
}
6

7
void showc1()
8
{
9
  static unsigned long c1;
10
  printf("%l", c1)
11
}

  
#432480
Lesenswert?
• ▲
▼
Franz K wrote:
> Habe mir jetzt eine Struct gebaut.
>
> wo ich mehrer Werte drinn stehen hab.
>
> das funktioniert.


Nö, es funktioniert immer noch nicht, bloß ist der Fehler für Dich zur 
Zeit nicht mehr sichtbar.

Du wirst mit einem solchen Programmierstil nicht lange Erfolg haben.

Du mußt die Ursache finden und nicht die Wirkung bekämpfen !


Peter
#432490
Lesenswert?
• ▲
▼
> Nö, es funktioniert immer noch nicht, bloß ist der Fehler für Dich zur
> Zeit nicht mehr sichtbar.

Ach, der kommt schon noch :-)
War noch immer so. Pseudolösungen halten nicht lange.

Blöd ist nur (für ihn), dass er jetzt die Chance hatte, dem
Problem auf den Grund zu gehen. Dadurch dass er es jetzt versteckt
hat, wird es nur schlimmer.

Gast #432497
Lesenswert?
• ▲
▼
Meine Gasheizung hat ein Leck. Mein Nachbar hat mich drauf hingewiesen.
Da ich das Leck nicht dichten konnte, hab ich jetzt alle Fenster und 
Türen mit Silikon abgedichtet. Hoffe mein Nachbar ist jetzt zufrieden 
und wird nicht mehr durch Geruch belästigt.

Grüße, Freakazoid

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren