Ist es möglich, die Frequenz eines analogen Eingangssignals mit dem Eingangserfassungsmodus von Timern in STM32F4 zu messen? Wenn nicht, was ist dann die Alternative? Vielen Dank im Voraus.
Es sieht so aus, als ob Sie versuchen, einen Frequenzzähler zu bauen . Sie können ein solches Gerät mit dem Timer-Modul in einem Mikrocontroller realisieren. Beachten Sie, dass es einige Einschränkungen in Bezug darauf gibt, wie schnell ein Signal beobachtet werden kann.
Zunächst müssen Sie das Eingangssignal konditionieren. Um zu wissen, was erforderlich ist, müsste ich zuerst etwas mehr über Ihr Signal wissen, aber ich gehe davon aus, dass Sie versuchen, die Frequenz von etwas zu messen, das im Grunde eine Sinus- / Rechteckwelle ist, möglicherweise mit einem gewissen DC-Offset. Wir müssen von diesem allgemeinen analogen Signal zu einer digitalen Rechteckwelle gelangen, die dieselben Flanken darstellt. Wir können das mit der folgenden Komparatorschaltung tun:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Konfigurieren Sie Ihren Mikrocontroller so, dass er hochzählt, bis er eine steigende Flanke am Ausgang des Komparators sieht. Erhöhen Sie die Timer-Frequenz so hoch wie möglich, um die gewünschte Frequenzauflösung zu erreichen. Sie sollten auch einen Interrupt bei einem Erfassungsereignis auslösen, damit Sie etwas mit den neuen Daten tun können.
Wenn der Interrupt ausgelöst wird, greifen Sie den Wert im Erfassungsregister und berechnen Sie die Frequenz des Signals wie folgt:
Sie können dann mehrere dieser Messwerte mitteln.
TurboJ