Sensor sampling library
Sensors.h
- Committer:
- Joseph_Penikis
- Date:
- 2015-02-23
- Revision:
- 0:eea8d19a7f6b
- Child:
- 1:f9f0b92a9d7c
File content as of revision 0:eea8d19a7f6b:
#ifndef SENSORS_H #define SENSORS_H #define CHANNEL_0 0x00 #define CHANNEL_1 0x01 #define CHANNEL_2 0x02 #define CHANNEL_3 0x03 #define CPU_CLOCK 48000000 /** * Pulses sets how many edges to detect before returning a time, max of 2^16, affectively refers to sample time * Glitch filter recognizes change on input pin after 2^n rising clock edges * Setting glitch filter to zero disables glitch filter * TODO: DETERMINE EXACT FUNCTIONALITY AND USAFULNESS OF FUNCTION */ extern "C" void setup_counter(int glitch_filter); /** * Measure the period observed on the sensor indicated by "sensor" * TO VERIFY (KL25Z): * PTC1 -> Pulse Counter Input 0 (00) * PTC2 -> Pulse Counter Input 1 (01) * PTC3 -> Pulse Counter Input 2 (10) * PTC4 -> Pulse Counter Input 3 (11) */ extern "C" int measure_clock_cycles(char sensor, int samples); float measure_frequency(char sensor, int samples) { // Divide the number of cpu clock cycles by the number of measured periods of the measured waveform to // get the number of clock cycles per period int clock_cycles = measure_clock_cycles(sensor, samples) / samples; // Divide CPU_CLOCK by the number of clock cycles to get the period return (CPU_CLOCK / (float)clock_cycles); } #endif