www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schrittweite von PWM Signal einlesen ATMega16


Autor: Sören Schnell (soeren)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe ein Problem mit dem einlesen der Schrittweite eines PWM 
Signals.
Die Frequenz kann ich einlesen (schwankt bei 17kHz schon sehr. ca. +/- 
100Hz).
Allerding erfasse ich ja nur die Frequenz einer Periode (High Flanke 
nach High Flanke). Nun möchte ich aber die Schrittweite des Signals 
bestimmen. Diese beträgt ca. 98%. Wie kann ich nun den Timer1 von High 
nach Low Flanke laufen lassen?

Vielen Dank für dir Hilfe

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sören Schnell (soeren)

>ich habe ein Problem mit dem einlesen der Schrittweite eines PWM
>Signals.
>Die Frequenz kann ich einlesen (schwankt bei 17kHz schon sehr. ca. +/-
>100Hz).

Du willst also die Pulsbreite eines PWM-Signals messen, das 17 kHz 
Periodendauer hat?
Bei einer Auflösung von 8 Bit (=256 Stufen) brauchst du einen Takt von 
4,3 MHz oder mehr.

>Allerding erfasse ich ja nur die Frequenz einer Periode (High Flanke
>nach High Flanke). Nun möchte ich aber die Schrittweite des Signals
>bestimmen. Diese beträgt ca. 98%.??

> Wie kann ich nun den Timer1 von High
>nach Low Flanke laufen lassen?

Du musst das mit der Input Capture Funktion machen. Dabei musst du sie 
erst auf die steigende Flanke einstellen. Wenn dann ein Interrupt 
ausgelöst wird musst du sie auf die fallende Flanke einstellen. Die 
Differenz der Messergebnisse ist deine Pulsbreite. Allerdings kannst du 
nur Pulse messen, die länger dauern als deine Interruptroutine, die 
vielleicht 100 Takte braucht. Bei 10 MHz wären das 10us, bezogen auf 
dein 17 kHz PWM Signal ca. 17%.

MFG
Falk

Autor: Sören Schnell (soeren)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Also ich benutze diese Input Caputure Funktion des AT Mega 16 (PD6).
Mein Interner Resonator ist auf 8MHZ gesetzt.
Wie gesagt, das Signal hat 17kHz / Schrittweite 98% high.
Deine Rechnung verstehe ich nicht ganz. Wieso kann ich die 98% nicht 
auflösen?

Wenn in die Interrupt Routine gesprungen wird, kann ich doch nicht die 
Trigger für die Flanken umstellen, oder doch?

Hast du sowas schon einmal gemacht?

Hast du ein dokumentiertes Codebeispiel??

Danke für deine Hilfe - bin sehr am Schwitzen.

Viele Grüße

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sören Schnell (soeren)

>Also ich benutze diese Input Caputure Funktion des AT Mega 16 (PD6).
>Mein Interner Resonator ist auf 8MHZ gesetzt.

Der ist relativ ungenau.

>Wie gesagt, das Signal hat 17kHz / Schrittweite 98% high.

Wenn du das genau weist, warum willst du dann messen?

>Deine Rechnung verstehe ich nicht ganz. Wieso kann ich die 98% nicht
>auflösen?

Hat keiner gesagt.

>Wenn in die Interrupt Routine gesprungen wird, kann ich doch nicht die
>Trigger für die Flanken umstellen, oder doch?

Doch.

>Hast du sowas schon einmal gemacht?

Ja.

>Hast du ein dokumentiertes Codebeispiel??

Nein.

MFG
Falk

Autor: Sören Schnell (soeren)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
soll eine Funktionsüberprüfung werden, daher das Einlesen des Signals.
Ich tüftel man.
Danke

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du ein dokumentiertes Codebeispiel??

Atmel könnte sowas zwischen den ApplicationNotes "rumliegen" haben...

>Wenn in die Interrupt Routine gesprungen wird, kann ich doch nicht die
>Trigger für die Flanken umstellen, oder doch?

Klar geht das.

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.