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
falls du eine antwort erwartest wäre es sicherlich nicht schlecht zu wissen was für einen prozessor du verwendest. tobias
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.
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.
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...
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
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.
@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...
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.
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 ;-)
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.
@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.
"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)
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
"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
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
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?
Jo, danke. Werde dem nächst versuchen, die Datnblätter einigermassen zu verstehen:)
Hi Sencer, das ist was Du brauchst!! http://www.catb.org/~esr/faqs/smart-questions.html Viel Spaß Tassilo
Was das auch für ne Seite ist Tassilo, alles in Englisch. Willst mich wohl auf den Arm nehmen. He He.
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
>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
> 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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.