Programm auf PC und AVR: unterschiedliche Ergebnisse

Gast #238792
Das Programm misst Werte vom ADC, legt über die letzen 64 Werte eine
Ausgleichsgerade und misst so die Steigung, die im Ruhszustand (also
ADC Werte ändern sich nicht) auf 0 liegen sollte.
Allerdings ist diese immer leicht negativ.
Die rohen Messwerte und das Ergebniss lasse ich mir auch über den UART
ausgeben, berechne auf dem PC (mit genau demselben Code) die Steigung
und da bekomme ich die richtigen Werte.

Wo steckt also der Fehler ?
Angehängte Dateien:
Gast #238793
Du könntest mal checken, in welchem Wertebereich deine int-Variablen so
sein können. Auf einem PC ist int 32 bit breit, auf dem AVR nur 16 bit.
Vielleicht läuft da was über.
Gast #238795
Besser noch:
1
printf("char %d short %d int %d long %d longlong %d bit\n", 
2
       CHAR_BIT * sizeof (char),
3
       CHAR_BIT * sizeof (short),
4
       CHAR_BIT * sizeof (int), 
5
       CHAR_BIT * sizeof (long),
6
       CHAR_BIT * sizeof (long long));

Es soll ja auch Plattformen geben, auf denen ein Byte nicht 8 bit breit
ist.
Gast #238796
Ich habe noch ein paar signed/long Cast Kombinationen ausprobiert, und
jetzt läuft es.
Zusätzlich hat noch ein Interrupt mit nichtgesicherten Registern die
Ergebnisse ab und zu versaut..
Gast #238797
@Rolf: Im Prinzip korrekt so, aber welche noch existierende Plattform
hat Bytes <> 8-Bit (und wird in C programmiert)? Die letzten, von denen
ich mal gehört habe, stammen aus den frühen 70ern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.