mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega8 ADC Problem: komische Werte?


Autor: Mr190E (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Folks,

ich versuche gerade mit dem ATmega8 Helligkeiten zu messen.
Als Platform habe ich das myAVR-Board (siehe: http://myavr.de)
Software: myAVR-Workpad

Zum Ausgeben der Werte benutze ich die UART-Funktion.

Soweit alles gut, ich bekomme ein Signal, welches sich mit der 
Helligkeit ändert, allerdings bekomme ich sehr krumme Werte, die so 
nicht stimmen können (siehe Anhang).

Ich wollte eigentlich einen genauen Wert mit welchem ich weiter arbeiten 
will. Bei diesem Gewuschel kann ich doch keinen Algorithmus schreiben :(

Autor: fragenderGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist die Frage?
Wo ist der Code?
Was sind krumme Werte?
Warum können die nicht stimmen?
.
.
.
.

Autor: Björn B. (elmo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sagt denn das Multimeter zu der Spannung, die am ADC anliegt?
Hast Du den ADC "langsam" genug getaktet?

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

Bewertung
0 lesenswert
nicht lesenswert
Mr190E schrieb:

> Zum Ausgeben der Werte benutze ich die UART-Funktion.
>
> Soweit alles gut, ich bekomme ein Signal, welches sich mit der
> Helligkeit ändert, allerdings bekomme ich sehr krumme Werte, die so
> nicht stimmen können (siehe Anhang).

Wenn du uns jetzt noch erklärst, was auf deinem 'Oszi-Bild' überhaupt zu 
sehen ist.

Für mich sind das erst einmal einfach nur Punkte auf Linien und neben 
einer Linie steht eine Zahl.

Aber:
Was ist da gemessen worden? Was ist das Messprinzip? Was sind die 
Umgebungsbedingungen? Welches Programm wurde genommen? Wie hast du 
Fremdlichteinfall ausgeschlossen? Hast du eine Glühlampe in der Nähe, so 
das die 100Hz aus dem Lichtnetz durchschlagen? Energiesparlampe in der 
Nähe, usw. usw.

Edit: OK. Die Frage nach dem Programm nehme ich zurück. Hab den 
Assemblercode nicht gleich gesehen.

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

Bewertung
0 lesenswert
nicht lesenswert
mainloop:
   rjmp  putChar
   rjmp   mainloop

 
putChar:
  sbis  UCSRA,5  ;USR=UCSRA=0x0B UDRE=Bit5
  rjmp  putChar  ;warten, bis UDR bereit
  out  UDR,r25
  ret  

das kann nicht stimmen.
putChar wird per rjmp angesprungen, macht aber einen ret als Abschluss

-> dein Programm funktioniert nicht so wie du dir das vorstellst. Der 
ret landet irgendwo, nur nicht dort von wo der rjmp her gekommen ist.

Und für den Rest:
Nein, ich werde da jetzt nicht hergehen und schon wieder Bitkonstanten 
auseinandernehmen, nur um zu sehen, was da wieder einmal in den 
Konfigurationsregistern eingestellt wurde.

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.