AD-Wander beim ATMega16 spinnt

Gast #93677
Lesenswert?
• ▲
▼
Moin Moin, nun gehts ins Eingemachte:

Ich verwende Bascom und einen ATMega16 mit 10 MHz.
Ich muss mit dem AD Wandler 2 Spannungen messen und damit etwas
rum rechnen, hier kurz der Code:
---schnipp --
Dim Ad3 As Word
Dim Ad4 As Word
Dim Pv As Single
Dim Pr As Single
Dim Pwr01 As Single
Dim Pwr05 As Single

---schnipp ---
Pwr: 'Das Unterprogramm
 Start Adc         ' Werte vom AD holen
  Ad3 = Getadc(3)
  Ad4 = Getadc(4)
 Stop Adc

'Leistung vorlauf
 Pwr01 = Ad3 / 0.2046
 Pwr01 = Pwr01 - 937
 Pwr01 = Pwr01 / 25
 Pwr01 = Pwr01 / 10
 Pwr01 = 10 ^ Pwr01
 Pv = Pwr01 / 1000    'Wert Pv merken für Hauptprogramm

'Leistung rücklauf
 Pwr05 = Ad4 / 0.2046
 Pwr05 = Pwr05 - 1187
 Pwr05 = Pwr05 / 25
 Pwr05 = Pwr05 / 10
 Pwr05 = 10 ^ Pwr05
 Pr = Pwr05 / 1000    'Wert Pr merken für Hauptprogramm
Return
------schnipp --

Nun das merkwürdige: Wenn ich entweder Leistung Rücklauf
oder Vorlauf deaktiviere, werden die jeweiligen Messeregebnisse
zu 100% verarbeitet (HF Leistung 144 MHz).
Wenn ich aber beides aktiviere, messe ich nur die Vorlaufleistung,
Rücklauf macht er nur dummes zeug:
meine LCD Anzeige:
PV =  20.1 W  (Wert ok)
Pr =   0.0012 <= Dieser Wert schwankt ständig wild umher.
               (muss aber ca 100mW sein)

Das komische ist, dass meine AD-Wander AD0 bis AD2 alle korrekt
arbeiten. Also am Layout/Bedrahtung dürfte es nicht liegen.
Der AD Teil auf auf dem PCB auch eine getrennte Masse.

Ist evt der RAM knapp ?? Aber ich verbrauche ja nicht voiel mehr an
Variablen, Pwr01 kann ich ja doppelt verwenden, oder mach ich was
falsch ?

Für Tips wie immer besten Dank !

So langsam weiß ich nicht weiter, was der Fehler ist.

mfg
Oliver
Gast #93678
Lesenswert?
• ▲
▼
Moin Moin,

was mit noch aufgefallen ist, der AD-Wandler ist wohl nicht der Fehler
denn:

 Pwr01 = Ad3 / 0.2046
       Pwr01 = Pwr01 - 937
       Pwr01 = Pwr01 / 25
       Pwr01 = Pwr01 / 10
       Pwr01 = 10 ^ Pwr01
       Pv = Pwr01 / 1000
       Pr = Pwr01 / 1000

Ich habe einfach Pv und Pr gleich rechnen lassen, bei Pv ist alles ok,

(1.58 Watt), nur bei Pr zeigt er 0.000002561 an und der Wert schwangt
ständig. Ist das ein Fehler in Bascom ? Wenn ich die Variablen als
WORD definierem zeigt er zwar nur ganze Zahlenan, aber dafür gleich.
Was kann da los sein ?? Ich habe das Programm auch auf nur diese
Funktion gekürzt, also RAM technisch sollte es kein Prob. mehr sein.

Für Hinweise besten Dank !

mfg
Oliver

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.