mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Angezeigte Wert stimmt nicht mehr!


Autor: HArdware'Ling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein variable von type unsigned long (d.h. max (2^32-1) kann er 
speichern)
wenn ich die Gleichung ((2^32*4)/100) mit irgeneinem C Compiler 
ausführen lasse, stimmt das Ergebnis!
aber geladen auf meinem 32 bit Mikrocontroller stimmt das Ergebnis nicht 
mehr   ==> WARUM???

MfG

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht deshalb, weil ^ in C ein XOR ist und nicht
die Potenzfunktion?

Ansonsten: Poste deinen richtigen Code.
Wenn er zu lang ist, dann kürze ihn oder mache ein Exzerpt,
welches für sich alleine kompilierbar und lauffähig ist.
Lass es laufen und stell sicher, dass der Fehler immer noch
enthalten ist, und dann poste es.

Autor: HArdware'Ling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Anders gefragt:
kann es sein das wegen des Diassemblers, der Mikrocontroller erst die 
Gleichung ((2^32*4) ausführt, und dann später durch 100 teilt?

das würde dann alles erklären!

MfG

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Disassembler hat damit nichts zu tun.

Die Berechnung (2^32*4) wird zuerst ausgeführt, weil sie in Klammern 
steht.

Beachte den Hinweis von Karl heinz bzgl. dem ^ Operator!

Autor: HArdware'Ling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

aber Moment in meinem Code steht nicht (^) sondern die math_Funktion:
pow(2,32)

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cool!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HArdware'Ling wrote:
> Hallo,
>
> aber Moment in meinem Code steht nicht (^) sondern die math_Funktion:
> pow(2,32)

Und woher sollen wir das wissen?

Poste deinen originalen Code!
Alles andere ist Kaffeesudleserei (um nicht wieder die
berühmte Kristallkugel zu bemühen).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.