Kenji Arai / Frq_cuntr_full

Dependents:   Frequency_Counter_w_GPS_1PPS

Embed: (wiki syntax)

« Back to documentation index

FRQ_CUNTR Class Reference

FRQ_CUNTR Class Reference

Frequency Counter program Only for ST Nucleo F411RE Board. More...

#include <frq_cuntr_full.h>

Public Member Functions

 FRQ_CUNTR (PinName f_in, double gt, double ex_clock)
 Configure data pin (Not changeable)
double set_gate_time (double gt)
 Set gate time.
void set_external_clock (double ex_clock)
 Set external clock frequency.
double read_gate_time (void)
 Read gate time.
uint32_t status_freq_update (void)
 Read status (new frequency data is available or not)
double read_freq_data (void)
 Read new frequency data.
uint32_t read_avarage_1pps (void)
 Read avarage measued data GPS 1PPS.
uint32_t read_newest_1pps (void)
 Read newest measued data GPS 1PPS.
uint32_t status_1pps (void)
 Read status (new 1PPS data is available or not)
uint8_t status_gps (void)
 Read GPS status.
uint32_t read_frequency_TIM2 (float gate_time)
 This is a "TEST PURPOSE" function Check PA0 pin input or internal clock frequency.
uint32_t read_frequency_TIM3P4 (float gate_time)
 This is a "TEST PURPOSE" function Check PC6 pin input frequency.
void port_mco1_mco2_set (uint8_t select)
 This is a "TEST PURPOSE" function Output clock from pin PA8 & PC9 uses for MCO_1 & MCO_2.
void debug_printf_internal_data (void)
 This is a "DEBUG PURPOSE" function print internal data (need to define "DEBUG".

Detailed Description

Frequency Counter program Only for ST Nucleo F411RE Board.

 #include "mbed.h"

 using namespace Frequency_counter;

 // PC_6,PC_7 & PB_6 use for Timer3 & 4(16+16bit)
 // PA_0,PA_1 & PB_10 use for Timer2(32bit)
 // PA_8 & PC_7 use for MCO (Test purpose)
 FRQ_CUNTR   fc(PC_6, 1.0, 24.999982f); //Input port, gate time[sec] & External clock freq.

 int main() {
   uint32_t counter_1pps = 0;
   double new_frequency = 0;
   // This is for test purpose
   fc.port_mco1_mco2_set(4);      // Clk/4 ->1/1(100MHz) cannot measure!!
   fc.read_frequency_TIM2(1.0);   // read TIM2 source frequency (test)
   fc.read_frequency_TIM3P4(1.0); // read TIM3 source frequency (test)
   while(true) {
      while (fc.status_1pps() == 0) {;}
      counter_1pps = fc.read_avarage_1pps();
      while (fc.status_freq_update() == 0) {;}
      new_frequency = fc.read_freq_data();
      printf("1PPS/ave = %9d , FREQUENCY = %11.3f\r\n", counter_1pps, new_frequency);
   }
 }

Definition at line 77 of file frq_cuntr_full.h.


Constructor & Destructor Documentation

FRQ_CUNTR ( PinName  f_in,
double  gt,
double  ex_clock 
)

Configure data pin (Not changeable)

Parameters:
Freq.input pin + Gate time[sec] + External clock[MHz]

Definition at line 102 of file frq_cuntr_full.cpp.


Member Function Documentation

void debug_printf_internal_data ( void   )

This is a "DEBUG PURPOSE" function print internal data (need to define "DEBUG".

Parameters:
none
Returns:
none

Definition at line 599 of file frq_cuntr_full.cpp.

void port_mco1_mco2_set ( uint8_t  select )

This is a "TEST PURPOSE" function Output clock from pin PA8 & PC9 uses for MCO_1 & MCO_2.

Parameters:
none
Returns:
none

Definition at line 320 of file frq_cuntr_full.cpp.

uint32_t read_avarage_1pps ( void   )

Read avarage measued data GPS 1PPS.

Parameters:
none
Returns:
Frequency

Definition at line 202 of file frq_cuntr_full.cpp.

double read_freq_data ( void   )

Read new frequency data.

Parameters:
none
Returns:
frequency data

Definition at line 160 of file frq_cuntr_full.cpp.

uint32_t read_frequency_TIM2 ( float  gate_time )

This is a "TEST PURPOSE" function Check PA0 pin input or internal clock frequency.

Parameters:
none
Returns:
Frequency

Definition at line 290 of file frq_cuntr_full.cpp.

uint32_t read_frequency_TIM3P4 ( float  gate_time )

This is a "TEST PURPOSE" function Check PC6 pin input frequency.

Parameters:
none
Returns:
Frequency

Definition at line 301 of file frq_cuntr_full.cpp.

double read_gate_time ( void   )

Read gate time.

Parameters:
none
Returns:
gate time (range 50mS to 1 minute)

Definition at line 132 of file frq_cuntr_full.cpp.

uint32_t read_newest_1pps ( void   )

Read newest measued data GPS 1PPS.

Parameters:
none
Returns:
Frequency

Definition at line 223 of file frq_cuntr_full.cpp.

void set_external_clock ( double  ex_clock )

Set external clock frequency.

Parameters:
frequencye.g. 25.000000 [MHz]
Returns:
none

Definition at line 138 of file frq_cuntr_full.cpp.

double set_gate_time ( double  gt )

Set gate time.

Parameters:
gatetime [sec]
Returns:
gate time (range 50mS to 1 minute)

Definition at line 111 of file frq_cuntr_full.cpp.

uint32_t status_1pps ( void   )

Read status (new 1PPS data is available or not)

Parameters:
none
Returns:
!=0: new data is avairable, 0: not yet

Definition at line 176 of file frq_cuntr_full.cpp.

uint32_t status_freq_update ( void   )

Read status (new frequency data is available or not)

Parameters:
none
Returns:
!=0: new data is avairable, 0: not yet

Definition at line 170 of file frq_cuntr_full.cpp.

uint8_t status_gps ( void   )

Read GPS status.

Parameters:
none
Returns:
1: GPS is ready

Definition at line 229 of file frq_cuntr_full.cpp.