mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu input capture


Autor: Günther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frage zu input capture

Hallo,
kennt sich jemand mit input capture aus?

Ich mußte feststellen, daß bei einem PWM-
Signal die Summe aus high- und low-Zeiten
länger sind als die gesamte Periodendauer,
also z.B. 800 Counts high, 1043 Counts low,
aber nur 1590 Counts für eine Periode.
Ich benutze einen ATmega16, programmiert in
C (dank des ausgezeichneten Tutorials von
Chr. Schifferle auch für Anfänger kein Problem)
und abgefragt wird ein STM-160-30 (=ein Thermometer).
Das Ergbnis ist der Mittelwert aus 30 Abfragen,
die aber an sich kaum schwanken.
Rauschunterdrückung hat keinen Einfluß.

Am Oszi sieht es ganz normal aus, etwa
135 µs high, 183 µs low, zusammen 320 µs.

Also müßte die input-capture-Einheit des ATmega16
das Ergebnis verderben.

Weiß jemand einen Rat?
Günther

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau das habe ich zufällig gestern gemacht, funktioniert problemlos.

Autor: Günther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo, Crazy Horse,
wie hast Du das gemacht - nur in C?
Ich habe auch andere Thermometer drangehängt
alle gehen daneben.
Vielleicht liegt es doch irgendwie an
meinem Programm ????
Kannst Du mir mal Deine Version schicken,
mal sehen ob mein Thermometer damit
richtig geht.
Viele Grüße
Günther

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnte ich machen - aber wie wärs mit deinem Programm?

Autor: Günther (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, crazy Horse,
vielen Dank für Deine Hilfe.
Deine Hilfe war schon vor Übermittlung Deines
Programms erfolgreich:
Ich wollte Dir gestern mein Programm zur Durchsicht
schicken und bei der Vorbereitung des Programms zum
Versand habe ich den logischen Fehler gefunden:
bei der Kontrolle auf Zählerüberlauf war eine
if-Schleife verkehrt herum geschrieben.

Nun funktioniert es bestens!
Allerdings muß ich jetzt ein Baustein mit
mehreren UND-Eingängen finden, weil es mehrere
Thermometer sind.

Den Code für die input-capture-Abfrage füge ich bei.

Viele Grüße
Günther

Autor: crazy horse (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
na, prima.
hier dann noch mein Programm. Liefert allerdings keine negativen
Temperaturen (braucht nur einen Messbereich von 20-40°)

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zeile
sensor = (100000*hzeit/periodendauer-32000);
muss natürlich heissen:
sensor = (100000*hi_time/periode-32000);

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.