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
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
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
na, prima. hier dann noch mein Programm. Liefert allerdings keine negativen Temperaturen (braucht nur einen Messbereich von 20-40°)
zeile sensor = (100000*hzeit/periodendauer-32000); muss natürlich heissen: sensor = (100000*hi_time/periode-32000);
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.