www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny13 ADC : single vs. free running - kein Unterschied?


Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann es sein, daß mit folgender, einmaliger Einstellung für den ADC:

ADMUX  = 1<<MUX1  | 1<<MUX0 ;
ADCSRA = 1<<ADEN | 1<<ADSC | 1<<ADPS2  | 1<<ADPS1  | 1<<ADPS0 ;
ADCSRB = 0;

trotzdem in einer Schleife ständig (scheinbar richtige) Werte aus ADCW 
gelesen werden können?
Ist das etwa nicht der Modus für eine einfache Wandlung?
Andererseits müßte für den free running mode das doch als Auto Trigger 
Source eingestellt werden.

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder wandelt der sowieso ständig, und ADSC ist nur zum Synchronisieren 
gedacht?

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heisst denn "ADSC"?

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, das ist das 'start conversion' bit.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehst Du, und wenn das in einer Schleife läuft, kannst Du auch in der 
Schleife die fertigen Messwerte von vorgestern auslesen (13.5Clock 
Verzug), wenn die oben aufgezeigte Initialisrung Bestandteil deiner 
Schleife ist.
Normal wartet man, bis der wandler fertig ist und liesst dann die Werte 
aus.

xlr.

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> mit folgender, einmaliger Einstellung für den ADC:

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn der ADC nicht mehr wandelt, kann man den zuletzt gewandelten 
Wert immer wieder auslesen, er nutzt sich dadurch nicht ab...

...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Koko:
Solange Du keinen Code postest, der dieses Verhalten zeigt, kann man nur 
raten bzw. sagen, dass mit dem Initialisierungs-Schnipsel oben definitiv 
nur eine Wandlung durchgeführt wird...

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was das Bit bewirkt, war mir klar, ich dachte, Dir erstanunlicherweise 
nicht, deshalb das 'Ach so'.

Die Initialisierung findet natürlich nur einmal statt. In einer ISR wird 
dann von aus ADCW von einem Poti gemessen, aber eben immer passende, 
unterschiedliche Werte.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wird vermutlich auch in dieser ISR das ADSC irgendwo wieder 
gesetzt... Aber ich hab echt keinen Bock auf Ratespielchen...

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kann also nicht sein, sonst müsste immer derselbe Wert gelesen 
werden.
Dann bleibt wohl nur die Möglichkeit, daß er unbemerkt reset'tet..

Danke, prüfe ich mal.

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ratespielchen

Ich hätte 'planmäßig unterschiedliche Werte' schreiben sollen, stimmt.

Ansonsten finde ich die Fragestellung ziemlich präzise, ich habe doch 
gar nicht verlangt, daß Du rätst, oder mein vermutlich nicht vorhandenes 
Problem im Programm löst.. ?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Koko Lores wrote:
>> Ratespielchen
>
> Ich hätte 'planmäßig unterschiedliche Werte' schreiben sollen, stimmt.

Das hat er auch gar nicht gemeint.

Du hast ein Problem in einem Code.
Du siehst das Problem nicht obwohl du den Code siehst.
Du erwartest aber das hier jemand dein Problem erkennen
soll, obwohl er den Code nicht sieht.

Es ist doch nicht so schwer:
Wenn ein Code nicht das tut was du erwartest, dann poste den
Code. Du rufst ja auch nicht beim Doktor an und sagst: "Es tut
weh", sondern du gehst selber hin, damit sich der gute Mann dein
Problem mal anschauen kann.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein, dass Du den Tiny13 schlafen schickst? Denn Sleep im 
Idle-Mode startet eine ADC-Conversion, falls der ADC eingeschaltet ist.

...

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach Leute, das ist einer von der ganz schlauen Sorte, der weiß zwar 
nichts,
will aber immer alles besser wissen.

Hier eines der vielen Beispiele:

Beitrag "C51, Addressierungsmethoden von Befehlen"

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du erwartest aber das hier jemand dein Problem erkennen
> soll, obwohl er den Code nicht sieht.

Das ist eben nicht der Fall, und deswegen finde ich es schade, daß man 
gleich angemacht wird. Ich hoffe nur auf eine direkte Antwort auf meine 
Frage - wenn keine Antwort kommt, oder ich mein Problem nicht anhand der 
Antwort lösen kann, muß ich präzisieren.

Hannes finde ich beispielhaft, eine prägnante Antwort auf die in der 
Frage enthaltenen Informationen. Nicht mehr, nicht weniger, keine 
Vorwürfe, und jetzt auch noch der Treffer.
Und in jedem Fall eine sehr hohe Informationsdichte, auch wenn die erste 
Antwort aufgrund meiner vagen Frage für mich nichts löst.

Aber vielleicht sollte ich mich gar nicht verteidigen, weil sowas ja im 
Allgemeinen zu nichts führt, ausufert, und dann irgendwann Antipathien 
erzeugt.

Ich habe mir vorherh im Datenblatt die ADC Beschreibung bestimmt 3 mal 
zielstrebig überflogen, von Sleep-Modi stand da nix. Ich guck nochmal 
nach.
Hättet Ihr's gewußt?

Also danke.

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, es steht bei "ADC Noise Canceler"

Und nicht etwa bei "Operation"
> The ADC does not consume power when ADEN is cleared, so it is recommended to
> switch off the ADC before entering power saving sleep modes.

Warum kein 'Otherwise, a conversion is started. See >ADC Noise 
Canceler<." ?

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei der Gelegenheit: Wo steht, unter welchen Bedingungen das erste 
Ergebnis einer Wandlung ungültig ist?
Ich habe nur etwas darüber bezüglich des Umschaltens gesehen - gilt 
Einschalten in dem Fall auch als Umschalten?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Koko Lores wrote:
>
> Hannes finde ich beispielhaft, eine prägnante Antwort auf die in der
> Frage enthaltenen Informationen.

Hannes hat heute seine Glaskugel geputzt.
Ein dreifach "Hoch" auf ihn.

> Nicht mehr, nicht weniger, keine
> Vorwürfe, und jetzt auch noch der Treffer.

Genau das waren die 'Ratespiele'. Es war ein Glückstreffer.
Vielleicht ist Hannes in den letzten 2 Wochen selbst auf ein
derartiges Problem hineingefallen, vielleicht hat er aber auch
nur heute Nacht schlecht geschlafen.

> Aber vielleicht sollte ich mich gar nicht verteidigen,

Du sollst dich auch nicht verteidigen. Du sollst einfach
nur daraus lernen:
* Programm tut nicht so wie erwartet:
  In der Fargestellung die relevanten Codeausschnitte mit anführen.
  Wenn du nicht weist was relevant ist, dann poste alles.

Plain and simple.

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Glückstreffer

Ich glaube eher, das Hannes sich wirklich mit den AVRs auskennt, und 
deshalb diese Eigenschaft als mögliche Ursache des geschilderten 
Verhaltens in Betracht ziehen konnte.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Koko, geh in Dich... die Kritik ist berechtigt.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kokolores:
Ich muss Dich leider enttäuschen. Die Kritik ist berechtigt, ich habe 
bei Deinen Äußerungen (auch in Deinen anderen Threads) auch schon einige 
male schlucken müssen und war jetzt auch kurz davor, meinen Unmut zu 
äußern. Dein Verhalten entspricht nicht dem eines Hilfesuchenden.

Nein, Du sollst nicht
- kuschen,
- angekrochen kommen,
- schleimen,
oder so ähnlich, Du sollst Dich nur nicht immer für Wissender halten als 
Du bist. So, genug geschimpft, der Dampf ist erstmal 'raus...

@Karl heinz:
Danke für das Dreifach Hoch, ich nehme es aber nicht an, weil ich es 
nicht verdient habe.

@Kokolores:
Ich habe mich lediglich daran erinnert, dass irgendein alter AVR (war es 
der '4433??) dieses (hervorragende!) Feature hatte und habe nun im 
Datenblatt des Tiny13 (der beiweitem nicht mein "Liebling" ist) 
nachgesehen, ob er dieses Feature auch hat. Und Bingo, er hat.

Das steht natürlich nicht beim ADC sondern in der Beschreibung der 
Sleep-Modes. Sorry, die Platzierung dieser Info ist nicht mein Werk...

Wo geschrieben steht, dass die erste ADC-Wandlung ungültig ist, weiß ich 
im Moment auch nicht. Ich weiß auch nicht, ob das für alle AVRs und für 
jeden Programmierstil zutreffend ist. Ich habe auch nicht soviel 
Ehrgeiz, dass ich jetzt das Datenblatt eines AVRs, den ich eigentlich 
nicht mag, durhforste, nur um Dir die Arbeit der Suche zu ersparen. 
Sorry, ist halt so.

Beste Grüße,
Hannes

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich glaube eher, das Hannes sich wirklich mit den AVRs auskennt, und
>deshalb diese Eigenschaft als mögliche Ursache des geschilderten
>Verhaltens in Betracht ziehen konnte.

Tut mir leid, aber ich finde, diese Aussage ist eine in geschwollenes
Deutsch gekleidete Unverschämtheit.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jack Braun wrote:
>>Ich glaube eher, das Hannes sich wirklich mit den AVRs auskennt, und
>>deshalb diese Eigenschaft als mögliche Ursache des geschilderten
>>Verhaltens in Betracht ziehen konnte.
>
> Tut mir leid, aber ich finde, diese Aussage ist eine in geschwollenes
> Deutsch gekleidete Unverschämtheit.

Hannes kennt die Dinger wirklich sehr gut.

Nur - Was Kokolores noch lernen muss:
Niemand, und ich betone wirklich niemand auf diesem Globus,
noch nicht mal die Entwickler des RISC Kerns, wissen alles
und jedes noch so kleine Detail über die Implementierung,
dass sie in 5 Minuten einen derartigen Zusammenhang aus
ihrem Gedächtnis hervorkramen. Sepziell dann nicht, wenn
in der Fragestellung das Schlüsselwort 'sleep' gar nicht
auftaucht.

Wenn er erst mal sein erstes 10-Millionen-Codezeilen-Jubiläum
hat (das in Bronze :-), wird er das auch gelernt haben.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jack:
Da Du in diesem Thread noch gar nichts konstruktives zum Besten gegeben 
hast, solltest Du Dich mal ganz zurückhalten (das gilt auch für andere 
Threads, in denen Du wilderst und hauptsächlich Leute niedermachst...). 
Du bist in dieser Hinsicht nicht besser als der OP dieses Threads...

@Koko:
Hannes und Karl Heinz haben eigentlich schon alles gesagt, was zu sagen 
ist, so dass ich jetzt nicht noch mal ausführlich erklären muss, was Du 
hier (und in Deinen anderen Threads) falsch machst... Ich werde 
jedenfalls in Zukunft nicht mehr versuchen, zu helfen, wenn Du Dir 
gleich "angemacht" vorkommst und dezent darauf hinweist, dass ich (und 
andere) ja vermutlich gar keine Ahnung haben...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jack Braun wrote:
>>Ich glaube eher, das Hannes sich wirklich mit den AVRs auskennt, und
>>deshalb diese Eigenschaft als mögliche Ursache des geschilderten
>>Verhaltens in Betracht ziehen konnte.
>
> Tut mir leid, aber ich finde, diese Aussage ist eine in geschwollenes
> Deutsch gekleidete Unverschämtheit.

Das finde ich auch.

Und jetzt wieder zurück zur Sache.

Ich habe nämlich den vagen Verdacht, dass hier am Thema vorbei 
diskutiert wird, weil wir zuwenig über das Ziel der Aktion erfahren 
haben.

Soll die ADC-Geschichte gleichzeitig mit der Servoimpulserzeugung (nein, 
ich nenne es nicht PWM) und der angestrebten Schaltuhr arbeiten? Wie 
soll der ADC-Wert weiterverwendet werden?

Stell doch einfach mal das komplette Projekt vor. Denn jede einzelne 
Aufgabe lässt sich auf verschiedene Art lösen wenn sie alleine im AVR 
werkelt. Wenn aber mehrere Programmkomponenten gleichzeitig arbeiten 
sollen, dann muss jede Komponente auf die anderen Komponenten Rücksicht 
nehmen. Manche Dinge, wie z.B. das zyklische Auslesen des ADC kann man 
sehr vorteilhaft ganz nebenbei in anderen (sowiso laufenden) Routinen 
erledigen.

...

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hannes kennt die Dinger wirklich sehr gut.

Um Gottes willen, das wollte ich überhaupt nicht bezweifeln.

Ich habe die Unverschämtheit der Aussage auf diejenigen bezogen,
die sich trotz der vollkommen schwammigen Frage damit abgemüht haben,
um dann zum Schluß vorgeworfen zu kriegen, sie hätten keine Ahnung.

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe nämlich den vagen Verdacht, dass hier am Thema vorbei
>diskutiert wird, weil wir zuwenig über das Ziel der Aktion erfahren
>haben.

Genau das war der Punkt in sämtlichen anderen Threads des TO.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, ich nehme alle Schuld auf mich und jetzt ist wieder Frieden...

...

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde das Verhalten in diesem und auch anderen Threads interessant, 
das wäre bestimmt ein gutes Thema für Soziologen.

Nehmt Ihr Eure Rolle hier nicht manchmal ein bißchen zu ernst? Das führt 
dann dazu,
 - daß sich hier eine Rangordnung entwickelt, die Ihr 'Anfängern' 
gegenüber als Nebeneffekt auch dadurch verdeutlicht, daß Ihr sie von 
vornherein auch als Anfänger ohne Ahnung behandelt (Babysprache).

 - daß Ihr Euch von Fragen persönlich angesprochen fühlt, und Euch 
veranläßt seht, sich eines Anderen Problems anzunehmen; entspricht die 
Frage nicht Euren Vorstellungen/Niveau, seid Ihr enttäuscht, und der 
Fragende trägt an dieser Enttäuschung schuld.

Ich bin und werde kein Soziologe, aber solche Beobachtungen, und 
weitere, lassen sich bestimmt gut untersuchen, und evtl. als Verhalten 
bestätigen. Ist das nur in Technik-Foren so? Vielleicht ähnelt das dem 
in Vereinen.

Das ist mir zwar eigentlich egal, ich möchte allerdings gerne 
herausfinden, warum aus einer einfachen Frage so eine Diskussion wird, 
und weshalb ich so 'falsch' verstanden werde.

Bitte erklärt mir deshalb

 - warum ihr mein Problem lösen / mich erziehen wollt, aber nicht 
einfach und direkt auf die Frage eingeht, oder einfach nicht drauf 
eingeht
 - weshalb ihr annehmt, daß ich mich 'für wissender halte, als ich bin'
 - warum dieser einfache Satz

> Ich glaube eher, das[s] Hannes sich wirklich mit den AVRs auskennt, und
> deshalb diese Eigenschaft als mögliche Ursache des geschilderten
> Verhaltens in Betracht ziehen konnte.

dazu führt, daß sich hier alle angepißt fühlen.


P.S.: Zu den Kommentaren von 'Jack Braun' - ich hoffe für Ihn, daß er, 
vielleicht auch mit ein bisschen mehr Aufmerksamkeit, sich soetwas 
abgewöhnt, bis er durch die Pubertät ist.

Autor: Koko Lores (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meine, wieso sieht die Antwort nicht einfach so aus:


-------------------------------------------
Antworter:

>Wie kann es sein, daß mit folgender, einmaliger Einstellung für den ADC:
> ..
>trotzdem in einer Schleife ständig (scheinbar richtige) Werte aus ADCW
>gelesen werden können?

 - ADCW verändert sich nur durch eine Wandlung.

>Ist das etwa nicht der Modus für eine einfache Wandlung?

 - doch.

>Andererseits müßte für den free running mode das doch als Auto Trigger
>Source eingestellt werden.

 - ja.

>Oder wandelt der sowieso ständig, und ADSC ist nur zum Synchronisieren
>gedacht?

 - nein.

------------------------------

Koko:
> - ADCW verändert sich nur durch eine Wandlung.

Der AD hängt an einem Poti, die Werte verändern sich planmäßig.

-----------------------------------

Antworter weiß nicht, und schreibt nicht
------------------------------------

Antworter 2:

Da war irgendwas mit sleep mode ...


------------

Koko:


Danke! Der ADC Noisecanceler startet bei eingeschaltetem ADC eine 
Wandlung auch im sleep mode..

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

stattdessen kommt:

scheißedraufbesserwisser:

ey, schon wieder so ne scheiß frage. das ist jetzt echt unter meinem 
niveau. tschüssikowski.
--------------------------------
einfachmalwasschreiber:

ey, internet-freunde,
der asi hat hier auch was gepostet, hähä, der ist ja so doof
--------------------------------

.................

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.