Wert verändert sich bei Übergabe

Gast #3035896
Lesenswert?
• ▲
▼
Hallo,
mit der Variable EEAdr_i wird beim ersten Aufruf von der Funktion 
lesen_1byte der Wert 0x0000 übergeben.
Statt diesem Übergabewert steht aber in der Variable EEAdr der Wert 
0xFF48.
Da ich jetzt wohl den Wald vor lauter Bäumen nicht mehr sehe meine 
Frage: Wo könnte der Fehler stecken?
1
void lesen_1byte(unsigned short);
2

3
void alles_lesen(void)
4
{
5
  unsigned short EEAdr_max;
6
  unsigned short EEAdr_i;
7

8
  EEAdr_max = ee_init();
9

10
  for (EEAdr_i=0; EEAdr_i < EEAdr_max; EEAdr_i++)
11
  {
12
    lesen_1byte(EEAdr_i);
13
  }  
14
}
15

16
void lesen_1byte(unsigned short EEAdr)
17
{
18
        unsigned short EEAdr_tmp1;
19

20
        EEAdr_tmp1 = EEAdr;
21

22
        ...
23

24
}

Vielen Dank für Eure Hilfe.
#3036022
Lesenswert?
• ▲
▼
Mario L. schrieb:
> Fabian O. schrieb:
>> Wie stellst Du das fest?
>
> Breakpoint gesetzt und im Watch-Fenster angezeigt.
>
> @ Otto Normaluser
>
> Hast Du auch eine mögliche Antwort zu dem Problem?

Bitte kompletten Code zeigen.
Es kann sein, dass die Speicherstelle, an der die Variable übergeben 
wird, zum Zeitpunkt des Breakpoints anderweitig verwendet wird 
(Codeoptimierung).
Mal den Disassembler einschalten :-)

Gruss, Daniel

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.