Viele Befehle zu A/D?

Gast #114845
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
Gast #114848
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.
Gast #114850
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...
Gast #114851
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
Gast #114854
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...
Gast #114855
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.
Gast #114856
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 ;-)
Gast #114860
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)
Gast #114862
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
Gast #114863
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
Gast #114864
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?
Gast #114870
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
Gast #114873
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren