Forum: Mikrocontroller und Digitale Elektronik Atmega 1280 ADC auslesen


von Muellrich (Gast)



Lesenswert?

Guten Tag,

im Anhang befindet sich eine C-Code mit dessen Hilfe ich versuche einen 
ADC Kanal an meinem Atmega 1280 auszulesen. Am ADC0 ist ein drucksensor 
angeschlossen, der im Prinzip wie ein veränderlicher Widerstand 
funktioniert. Gemessen habe ich diesen schon scheint i.O zu sein. auch 
am Controller ändert sich die Spannung. Es erscheinen über Putty auch 
Zahlen auf dem Bildschirm, aber leider verändern diese sich nicht. Habe 
jetzt schon einiges versucht, komme aber nicht weiter. Wäre klasse wenn 
ihr mal drüber schauen könntet.

Vielen vielen Dank

Hab auch mal den Schaltplan des Boards anghängt zum besseren 
Verständnis.

von Oliver S. (oliverso)


Lesenswert?

Das ist mal ein typisches Beispiel, wie man einen an sich gut lesbaren 
Code durch völlig sinn- und zwecklose Kommentare in eine unüberschaubare 
Buchstabenwüste verwandelt.

>#include .../avr/iomxx0_1.h"
Was bezweckst du damit?

Oliver

von Muellrich (Gast)


Lesenswert?

Hallo,

danke erstmal, dass du dir diese Buchstabenwüste angeschaut hast. 
Eigentlich sollte damit der Controller definiert werden. Habe ich 
gefunden im Netz und dann eingebaut, als nichts klappte. Nehme ich dann 
mal wieder raus.

Danke

von Dietrich L. (dietrichl)


Lesenswert?

Das hat zwar nichts mit dem ADC zu tun, aber

F_CPU muss vor delay.h definiert werden sonst arbeitet delay mit dem 
Defaultwert 1MHz.

Gruß Dietrich

von Muellrich (Gast)


Lesenswert?

Danke und direkt geändert!

von Karl H. (kbuchegg)


Lesenswert?

>    _delay_ms(10000);

?
Du willst wirklich von einer Messung zur nächsten 10 Sekunden(!) warten?

10 Sekunden sind lang, wenn man vor dem Monitor sitzt und auf einem 
Sensor rumdrückt und darauf wartet, dass sich irgendwelche angezeigten 
Werte ändern.

Bist du sicher, dass du lange genug wartest?

von Uwe (de0508)


Lesenswert?

Hallo,

spontan ist mir noch das aufgefallen:
1
// calculate configuration parameter
2
#define UART_SETTING  ((F_CPU/(16*UART_BAUDRATE))-(1/2))

Also stimmt die Baudrate auch nicht (ganz), da die "-1" fehlt.
Wahr ist (0 == -1/2)

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.