Forum: Mikrocontroller und Digitale Elektronik Viele Befehle zu A/D?


von Sencer (Gast)


Lesenswert?

HI,
ich habe einen µC mit einem A/D-Wandler. Wie lese ich jetzt blos einen
Analogen-Wert ein?
Es gibt für den A/D-Wandler so viele Befehle, wie ADMUX, ADCSR usw.
Da wird mir schwindlig.
Was für Befehle muss ich ausführen, damit ich ein Analoges-Signal in
ein Digitales Signal umwandeln kann und diese dann z.B. in einer
Varible zur verfügung gestellt bekomme?

Sencer

von hofer tobias (Gast)


Lesenswert?

falls du eine antwort erwartest wäre es sicherlich nicht schlecht
zu wissen was für einen prozessor du verwendest.

tobias

von Sencer (Gast)


Lesenswert?

Ich verwende einen ATMEL-Mikrocontroller(ATtiny26/ATmega8515).

von Steffen (Gast)


Lesenswert?

unglücklich - der ATmega8515 hat leider keinen AD Wandler.

Außerdem wäre es interessant zu wissen, in welcher Programmiersprache
du arbeiten willst ...

Danach liest du dir vielleicht mal die passende Passage im Datenblatt
nach und versuchst mal zu verstehen, was die einzelnen Register
bezwecken. Das schreibst du dann mal im Forum und fragst die sachen
noch, die du nicht verstanden hast.

Zeig mal ein bisschen Interesse.

von Sencer (Gast)


Lesenswert?

Hast recht, der 8515 hat leider keinen.
Habe mich verguckt.
Im Datenblatt des ATtiny26 habe ich mich mal umgeschaut, verstehe
leider nichts, was über den A/D steht:(
Hilf mir bitte weiter.

von ...HanneS... (Gast)


Lesenswert?

Hi Sencer...

> Es gibt für den A/D-Wandler so viele Befehle, wie ADMUX, ADCSR usw.
> Da wird mir schwindlig.

Hmmm... Die Befehle dazu sind wohl eher IN, OUT, LDI usw...
Was du da aufzählst sind I/O-Register.

In ADMUX musst du reinschreiben, welchen Pin du messen willst, also wie
du den AD - MUltipleXer (deshalb AD-MUX) einstellen willst.

In ADCR (AD-Control-Register, also Steuerregister) musst du halt
reinschreiben, was der ADC machen soll.

Auslesen kannst du den Wert dann aus ADCH und ADCL.

Was dabei zu beachten ist, findest du im Datenblatt des jeweiligen
AVR... Da gibt es von Typ zu Typ Unterschiede...

Im Prinzip läuft es auf Folgendes hinaus:

- Messquelle mittels ADMUX einstellen,
- Betriebsart mittels ADCR einstellen,
- was anderes tun, bis die Messung fertig ist,
- Wert aus ADCL und ADCH auslesen, aber erst, wenn der ADC fertig
  ist... (geht mit ADC-Int, aber bei guter Planung auch in oder
  besser nach einem Timer-Int...

Viel Erfolg...
...HanneS...

von Tobi (Gast)


Lesenswert?

da steht doch in dem einleitungstext zum adc im DB alles schritt für
schritt drin was du machen muss. dann musste doch nur noch nachschaun
welche register/bits das genau sind (wenns nicht auch schon angegeben
ist) und fertig.
ist ja nicht das erste mal das du durch exzessive faulheit unangenehm
auffällst

von Sencer (Gast)


Lesenswert?

Danke sehr.

von Thomas O. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

für den ATtiny26 hab ich was da, er leißt an einem Pin die Spannung ein
und gibt den Wert am anderen Port aus, aber nur die unteren 7bits da der
Resetpin sonst deakitviert werden müsste, habe aber kein STK500 da um
das Rückgängig zu machen.

von ...HanneS... (Gast)


Lesenswert?

@Sencer: Nix zu danken...

@Tobi: Du hast Recht, deshalb habe ich ja auch keinen Code mitgeliefert
sondern ihn nur durch allgemeine Äußerungen neugierig aufs Datenblatt
gemacht.

@Thomas Oly: Cooler Code... Verstehst du den? - Oder sammelst du sowas?
Warum schiebst du das Ergebnis nach rechts? Hat der Tiny kein ADLAR in
ADMUX? Die Schieberei war doch nur bei den Classic's nötig...

Beste Grüße...
...HanneS...

von Thomas O. (Gast)


Lesenswert?

Hallo,

den Schiebeteil hab ich nur übernommen und mir ehrlich gesagt keinen
Kopf drüber gemacht, denke aber zu wissen wies funktioniert man muss
das niedrigere Register 2 mal schieben und die höherwertigen Bits aus
dem hohem Register übernehmen. Den Rest verstehe ich ja schon hab ja
Teilweise noch ein paar Komentare dazugefügt, damit ich nicht jedesmal
im Datenblatt anchscheuen brauche wenn ich z.b. den Takt des ADC
ändere.

Ich habe die Schaltung aufgebaut und der Code funktioniert deswegen
habe ich meine Hilfe angeboten, mit Sachen wo ich mir nicht ganz sicher
bin werde ich mich in Zukunft zurückhalten.

von bluemole (Gast)


Lesenswert?

Hallo,

hab' mal Deinen geposteten Code überflogen. Die Schieberei kannst Du
locker einsparen.
Stell' einfach im ADMUX das ADLAR auf High. Dann ist das Ergebnis left
adjusted. Du brauchst nun nur noch das ADCH einlesen

in temp,ADCH
out portb,temp

Das ADCL brauchste gar nicht mehr zu lesen. Spart echt Rechenzeit und
sieht bestimmt schöner aus.....

MfG bluemole

PS: Zur Debatte der Faulheit, vielleicht ist ja das Analphabetentum
weiter verbreitet als man denkt ;-)

von Thomas O. (Gast)


Lesenswert?

Hallo,

danke werde ich mir gleich anschauen und ändern.

von Thomas O. (Gast)


Lesenswert?

Hallo,

jawoll es funktioniert ich man muss das 5te Bit im ADMUX aud 1 setzen
also 32 zu dem Wert dazurechnen den man ans ADMUX überträgt.

von Thorsten (Gast)


Lesenswert?

@bluemole

> vielleicht ist ja das Analphabetentum weiter verbreitet als man
denkt

Vielleicht liegts aber auch einfach daran, daß man mit 15 noch nicht so
fit in technischen Englisch ist.

von Tobi (Gast)


Lesenswert?

"Vielleicht liegts aber auch einfach daran, daß man mit 15 noch nicht
so fit in technischen Englisch ist."
dabei ist das technische englisch das leichteste. die fachbegriffe muss
man sowieso lernen, egal in welcher sprache und gleich sind die meist
auch noch. der rest um die fachausdrücke rum ist nicht wirklich
sonderlich schwer und auch mit ein wenig eigeninitiative erlernbar (vor
allem da man mit 15 schon etwas länger englisch in der schule haben
sollte)

von Florian (Gast)


Lesenswert?

Das mit dem "Fitt" in Englisch kommt aber absolut auf den Schultyp und
das Bundesland an;)
Und dadrauf ob man sich wirklich mit der Materie beschäftigen will.
mfg Flo

von Tobi (Gast)


Lesenswert?

"Und dadrauf ob man sich wirklich mit der Materie beschäftigen will."

wenn man merkt, dass man das gelernte nicht nur in der schule braucht
sondern auch im hobby, z.b um englische schaltungsbeschreibungen und
datenblätter zu verstehen sollte die motivation eigentlich da sein. es
sei denn jemand ist so faul und dreist jeden müll in foren zu erfragen
weil man zu ignorant ist einzusehen, dass einem nicht immer alles fertig
vorgesetzt werden wird. das sollte man IMO nicht auch noch unterstützen

von Sencer (Gast)


Lesenswert?

Danke Leute für eure Beiträge.
Und wenn alles in Deutsch stehen würde, dann müsste ich nicht hier
andauernd Fragen stallen. Englisch ist für mich persönlich schwer und
verstehe deshalb auch nur einige Sachen die in den Datenblättern
stehen. Aber trotzdem bleibt mein hobby die Elektrotechnik.
Ich mag es garnicht, dass mir ein paar Leute sagen, dass ich die
Elektrotechnik vergessen soll, weil ich nur nicht so gut Englisch
kann:(

DANKE SCHÖN

von Christof Krüger (Gast)


Lesenswert?

Wirke dem entgegen! Versuche es stetig und du wirst dein Englisch
aufbessern. Es wird dir niemand was sagen, wenn du hier im Forum eine
Frage der folgenden Art stellst:

"Ich wollte xyz machen, es klappt aber irgendwie nicht. Ich habe im
Datenblatt gelesen, dass man das IO-Register ABC auf XYZ stellen muss.
Ausserdem steht da was von Register ZZZ, aber da verstehe ich nicht
ganz, was dieser Satz bedeutet: 'blablabla englisch blablabla'. Kann
mir jemand helfen?"

Siehst du den Unterschied?

von Sencer (Gast)


Lesenswert?

Jo, danke.
Werde dem nächst versuchen, die Datnblätter einigermassen zu
verstehen:)

von Tassilo (Gast)


Lesenswert?

Hi Sencer,

das ist was Du brauchst!!

http://www.catb.org/~esr/faqs/smart-questions.html

Viel Spaß
Tassilo

von Sencer (Gast)


Lesenswert?

Was das auch für ne Seite ist Tassilo, alles in Englisch. Willst mich
wohl auf den Arm nehmen.

He He.

von Gunter (Gast)


Lesenswert?

Hi Tassilo,

das ist jetzt aber gemein - ihn auf die englische Seite zu verweisen !

http://www.lugbz.org/documents/smart-questions_de.html

ist das Gleiche auf Deutsch.

Gunter

von Sencer (Gast)


Lesenswert?

Danke Gunter.

von Tassilo (Gast)


Lesenswert?

>Was das auch für ne Seite ist Tassilo, alles in Englisch. Willst mich
>wohl auf den Arm nehmen.

....
....

>ist ja nicht das erste mal das du durch exzessive faulheit unangenehm
>auffällst


Ohne Worte

von Sencer (Gast)


Lesenswert?

Was soll das heißen Tassilo?

von Tassilo (Gast)


Lesenswert?

Quod erat demonstrandum!

- oder


was zu beweisen war!

von Smart Questions (Gast)


Lesenswert?

> Was soll das heißen Tassilo?

Naja, der erste Abschnitt von "asking smart questions" nennt sich
"Translations"; und in diesem Abschnitt befindet sich ein Link mit
dem Titel "german".
Man könnte auch ohne große Englisch-Kenntnisse darauf kommen, dass sich
hinter diesem Link etwas deutsches verbirgt.

Falls selbst dafür die Englisch-Kenntnisse nicht ausreichen sollten,
könnte man alternativ auch auf die Idee kommen, (Achtung Geheimtipp!)
Google zu benutzen:
http://www.google.com/search?hl=de&ie=UTF-8&q=smart+questions&btnG=Suche&lr=lang_de

Das alles ließe sich in wenigen Minuten erledigen.
Aber wofür gibt es schließlich Foren mit hilfsbereiten Menschen, die
einem jede noch so kleine Denkarbeit abnehmen?

von Sencer (Gast)


Lesenswert?

Ich lasse euch doch nicht die ganze Arbeit machen mir die Datneblätter
zu übersetzten. Das wäre sehr nett, aber wo bleibt den der Spaß?
Das mache ich lieber selber.

von Tassilo (Gast)


Lesenswert?

@Gunter,


das Signum muß jetzt aber wieder raus!!! lol


Gruß
Tassilo

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.