mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM-Signal dekodieren mit Atmega128


Autor: Toby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forianer,

ich bin recht im Thema µC-Programmierung. Ich nutze einen Atmega128
@16MHz mit der Bascom-Umgebung.
Zur Sache:

Ich hab mir einen Beschleunigungssensor bestellt, der als
Ausgangssignal ein PWM-Signal liefert. Die Tastverhältnis enthält die
Info über die Beschleunigung.
Wie kann ich denn ein solches PWM-Signal am einfachsten (mgl. wenig
CPU-Last) realisieren. Das maximale länge einer Periode kann ich wählen
zwischen 0.5ms und 10ms wobei mit 4-5ms von der Präzision meiner
Anwendung am liebsten wären.

Es geht also nur um die dekodierung der Tastrate!
Vielen Dank für eine kleine Info!

Toby

Autor: Toby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soll heißen ich bin recht neu, verdammt

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Mega128 besitzt die Input-Capture-Unit, damit lässt sich das
ziemlich simpel mit einem Interrupt auswerten.
Ob Bascom das unterstützt, weiß ich nicht. Ein Blick in die
Bascom-Befehlssammlung sollte aber helfen (32MB PDF...).

[OT]
>mgl. wenig CPU-Last)
Das widerspricht aber BASCOM...
[/OT]

Autor: Ernst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit ganz wenig CPU-Last:

RC-Glied an dein PWM Signal, und dann mit A/D Wandler auslesen.

Da sollte dann auch Bascom/C/ASM kaum noch einen Unterschied machen.

Und ist vermutlich (je nach Frequenz und Qualität des
Widerstands/Kondensators) auch viel genauer als das Ausmessen des PWM
Signals.

/Ernst

Autor: toby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten, ich werde mich mal mit dem
Input-Compare-Register beschäftigen. Leider sind die ganzen Infos von
AVR immer auf english. Oder gibts vielleicht irgendwo diese Handbücher
auf deutsch?

Gruß!

toby;

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Input-_Capture_...

>Leider sind die ganzen Infos von AVR immer auf english. Oder gibts
vielleicht irgendwo diese Handbücher auf deutsch?
IMHO: Nö. Ohne Englisch bist du eh auf längere Sicht aufgeschmissen...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ernst: Super Lösung! Ein quasi-digitales Signal nach analog zu wandeln,
um es dann wieder zu digitalisieren...

Autor: toby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da könnte ich dann auch gleich den analogen Output meines ADXL202
nehmen. Das wär Käse.
Das Input CAPTURE ist wohl tastsächlich die "gängigste" Methode beim
Dekodieren. Je nach Flankentriggerung bleibt der Counterstand als
Zeitstempel abrufbar. Ideal. Also danke für den Tip!!

Gruß,
Toby;

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.