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


von Mr190E (Gast)


Angehängte Dateien:

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 :(

von fragenderGast (Gast)


Lesenswert?

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

von Björn B. (elmo)


Lesenswert?

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

von Karl H. (kbuchegg)


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.

von Karl H. (kbuchegg)


Lesenswert?

1
mainloop:
2
   rjmp  putChar
3
   rjmp   mainloop
4
5
 
6
putChar:
7
  sbis  UCSRA,5  ;USR=UCSRA=0x0B UDRE=Bit5
8
  rjmp  putChar  ;warten, bis UDR bereit
9
  out  UDR,r25
10
  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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.