www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik adc ist sehr empfindlich (codevision)


Autor: Goku Ssj4 (gokussj4)
Datum:
Angehängte Dateien:
  • adc.txt (788 Bytes, 93 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
halo leute bin neu hier habe gleich ne frage
ich habe mit codevision den wizard benutzt um ein adc_messer
zuschreiben und den wert über den portb(8_leds) auslessen und es geht
aber er ist sehr empfindlich die leds blinkeln zuschnell  entwider ist
er sehr empfindlich oder ich lesse nur die zahlen die hinter den
(komma) sind 0,01234 (und das will ich nicht) oder was meint ihr was
soll ich jetzt machen wäre super wenn einer mir eine code gibt die
nicht so empfindlich ist oder sagt mit wie ich das machen soll (ach ja
und ich möchteihn nicht langsam machen)
ich hoffe ihr habt mich verstanden


danke imvorraus

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe keinen Wizzard benutzt, sondern die paar Register selber
gesetzt und den ADC-Interrupt aufgesetzt:

http://www.mikrocontroller.net/forum/read-4-210743.html#new

Ich kann nicht klagen, die Anzeigewerte stehen wie ne 1.


Peter

Autor: Goku Ssj4 (gokussj4)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
thnx aber ich glaube das ist nicht mit codevision sondern mit gcc oder?

Autor: Goku Ssj4 (gokussj4)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also mein prob ist das ich kein genauen wert bekomme!!!!! warum
eigentich???

Autor: Goku Ssj4 (gokussj4)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder lige ich falsch ich bin ein anfänger

Autor: Jnes Erwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der Vorteiler eingesetzt/geschaltet. Der AD-Wandler kann nur bis
200kHz arbeiten, deshalb muss der Vorteiler z.B. auf 64 gestellt
werden. (8Mhz Takt / 64 = 125 kHz)

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorteiler wird wohl damit wenig zutun haben.
@goku ssj4
Wie sieht die Schaltung aus ?
Bilnken die Dioden auch wenn du den ADC-Pin mit der Masse kurzschließt
?

Autor: Goku Ssj4 (gokussj4)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja es ist so
ich benutze den testboard stk200 mit atmega32 auf portb sin die leds
und die leds spielen verrückt auser wenn ich den adc_poti auf maximale
power drehe dann alle leds sind an (hi)

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich ist da was du beschreibst normal, es gelangen bestimmt
störungen an den ADC-Eingang und deshalb binkt das ganze.
Und das in deinem Progarmm keine Bremse gibt, wird der Wert so schnell
geändert wie es MCU schafft.
_Bilnken die Dioden auch wenn du den ADC-Pin mit der Masse kurzschließt
?_
Wenn ja dann gibt es eine andere Ursache. Nimm doch ein Stück Kabel und
schliesse den entsprechenden Pin an die Masse.Ist doch einfach, oder ?



>testboard stk200
Es tut mir leid ich habe es,weiss also noch wie vor nicht wie die
Schaltung aussieht, das wäre aber sehr hilfreich.


Und da ich auch ein Noob bin gebe ich die einen Rat, fange erst an im
ASM zu programieren, das ist viel einfacher und man lernt auch etwas
über Hardware-Hintergrunde und ist nicht so hilflos ausgeliefert wenn
etwas nicht läuft.
Und bloss keine  "wizards" benutzen, damit vergeudet man wirklich nur
seine Zeit.

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>delay_ms(200);
Habe übersehen gibts doch ein delay, egal das mach eh nicht viel aus.

Autor: Goku Ssj4 (gokussj4)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein ich will delay nicht benutzen
ich habe bischen gegooglet und rausgefunden das ich den adc_10bit in 8
umsetzen soll aber die frage ist wie ich das machen soll  mit
codevision hoffe das jemanden weiter hlfen kann

Autor: moogqai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na durch divisionen mit 2
10 bit zahlen muss man 2 mal durch 2 dividieren ( oder einmal durch 4 )
um 8 bit werte zu erhalten den rest bekommt man durch casten ( siehe asm
grunlagen )
mfg moogqai

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich habe bischen gegooglet und rausgefunden das ich den adc_10bit in 8
umsetzen soll

Um was damit zu erreichen ?
Du wolltest doch dass die LEDs nicht so sinnlos blinken.

Es tut mir leid aber ich habe das gefühl das du meine Beiträge nicht
liest. Naja egal.

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"thnx aber ich glaube das ist nicht mit codevision sondern mit gcc
oder?"


Ja, aber das tut doch nichts zur Sache.

Der einzige Unterschied ist die Deklaration eines Interrupt-Handlers,
und wenn Du schon mal in Codevision einen Interrupt benutzt hast,
sollte nichts daran schwierig sein.

Und der Rest ist pures ANSI-C, d.h. 100% portabel.


Peter

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell hast du schon mal +/- 1bit, also das LSB kann schwanken.
Dazu kommen dann Störungen auf dem Signal, der Referenzspannung und dem
Massepotential. Kann durch das Signal selbst (Rauschen, induzierte
Störungen, Versorgung der Signalquelle)oder durch den MC  (arbeitet ja
immerhin mit ein paar MHz) eingekoppelt werden.
Ein paar einfache Regeln:
-ordentliches Layout
-Entkopplung Vcc, AVcc, Gnd, AGnd, Vref
-eine Kapazität am Analogeingang (bei 200ms Abtastzyklus kannst du da
locker 100nF ranpacken)
Man kann mit dem AVR wirklich erstaunlich genau messen, dazu muss aber
das Umfeld stimmen. Kommt es auf das letzte Bit an, den MC schlafen
legen, siehe Atmel-Appnotes.

Dann gibts noch die Software-Hilfsmittel: mehrfach messen, Mittelwert
bilden, in deinem Fall beispielsweise alle 20ms messen, die 10
Messwerte in ein Array packen (neuer Wert schmeisst ältesten raus),
alle addieren und durch 10 teilen. Sollte recht ruhig sein. Gibt noch
deutlich intelligentere Verfahren, das sollte aber erstmal reichen, um
8bit ruhig zu stellen :-)

In 1.Linie aber das Übel an der Wurzel packen, siehe oben.

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.