www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD-Wander beim ATMega16 spinnt


Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.