Hallo easy Control Freunde,
im Gegensatz zur easy800 / MFD-Titan hat die easy Control keine fertigen Bausteine für eine Frequenzmessung. Für niedrige Frequenzen lässt sich dies recht einfach mit einem Zähler und einem Timer realisieren.
Aber wie sieht es mit hohen Frequenzen aus
Lösung:Zur Messung wird ein Timer Interrupt mit einer Zeitdauer von 1 Sekunde definiert. Exakt nach einer Sekunde wird das laufende Programm unterbrauchen und die Timer Interruptroutine aufgerufen. In der Timerroutine wird der Zählerstand eines der beider 16BitCounter (I1,I2)
über direkten Pheriepheriezugriff ausgelesen und die Frequenz berechnet.
Getestet habe ich das Ganze bis 4KHz, müsste aber auch für wesentlich höhere Frequenzen funktionieren
Vorgehensweise:- in der Steuerungskonfiguration die 16Bit Counter aktivieren
- Bibliotheken Util.lib und Util2.lib ein (Interruptverarbeitung) einbinden
- in der Taskkonfiguration den Timerinterrupt aktivieren und mit dem Unterprogramm TimerInt verknüpfen
- der Rest ist im Quellcode ersichtlich
Gruß Paul