This PASM-driven object reads values off of shifted inputs from ADCs like the 10-bit MCP3008 or a 12-bit MCP3208 and determines the channel's frequency. "Low" and "high" edge thresholds can be easily set in the program. Frequency is determined by multiple edge measurements which can be customized for speed or accuracy. The program can operate up to about 148 thousand ADC samples per second (at 10-bits or 133ksps for 12-bits).

This object could be used for anything from simple frequency reading to audio recognition and multi-input signal processing.