Frequency counter library using GPS 1PPS signal and temperature controlled 50MHz Base clock. Ported from F411 Frequency Counter.

Dependencies:   RingBuff

Dependents:   Frequency_Cntr_1PPS_F746ZG

Fork of Frq_cuntr_full by Kenji Arai

Embed: (wiki syntax)

« Back to documentation index

FRQ_CUNTR Class Reference

FRQ_CUNTR Class Reference

Frequency Counter program Only for ST Nucleo-F746ZG Board. More...

#include <frq_cuntr_f746.h>

Public Member Functions

 FRQ_CUNTR (double ex_clock)
 Configure counter.
double read_freq_data (void)
 Read new frequency data (gate time = 1sec)
double read_compensated_freq_data_w_gt (uint16_t gt)
 Read new frequency data with specific gate time.
uint32_t status_freq_update (void)
 Read status (new frequency data is available or not)
double read_avarage_1pps (void)
 Read avarage measured data GPS 1PPS.
uint32_t read_num_in_buffer (void)
 Read number of buffered data.
uint32_t read_newest_1pps (void)
 Read newest measured data GPS 1PPS.
uint32_t status_1pps (void)
 Read status (new 1PPS data is available or not)
uint32_t status_gps (void)
 Read GPS status.
void recipro_start_measure (void)
 Reciprocal measurement preparation for Reciprocal measurement -> recipro_start_measure check frequency input as IC trigger -> recipro_check_trigger read IC data -> recipro_read_data.
uint32_t read_base_clock_frequency (double gatetime)
 This is a "DEBUG PURPOSE" function Check Base clock frequency on TIM2 or/and TIM8+4 print internal data (need to define "DEBUG")
void debug_printf_internal_data (void)
 This is a "DEBUG PURPOSE" function print internal data (No need to define "DEBUG")

Detailed Description

Frequency Counter program Only for ST Nucleo-F746ZG Board.

 #include "mbed.h"
 #include "frq_cuntr_f746.h"

 using namespace Frequency_counter;

 // frequency input  -> PC_6 & PA_3
 // 50MHz base clock -> PA_5, GPS 1PPS -> PA_1
 // Connect -> three ports,PA_7,PB_10 and PC_7 connected together
 // CAUTION!!: SB13 & SB181 must remove from Nucleo-F746ZG board

 FRQ_CUNTR    fc(49.999992f); // External base clock freq.

 int main() {
   double   cntr_1pps = 0;
   double   frequency = 0;
   while(true) {
      while (fc.status_1pps() == 0) {;}
      cntr_1pps = fc.read_avarage_1pps();
      while (fc.status_freq_update() == 0) {;}
      frequency = fc.read_compensated_freq_data_w_gt(1); // 1sec gate
      printf("1PPS/ave = %%11.3f, FREQ. = %11.1f\r\n", cntr_1pps, frequency);
   }
 }

Definition at line 75 of file frq_cuntr_f746.h.


Constructor & Destructor Documentation

FRQ_CUNTR ( double  ex_clock )

Configure counter.

Parameters:
Baseclock Frequency [MHz]

Definition at line 74 of file frq_cuntr_f746.cpp.


Member Function Documentation

void debug_printf_internal_data ( void   )

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

Parameters:
none
Returns:
none (just print tha data)

Definition at line 695 of file frq_cuntr_f746.cpp.

double read_avarage_1pps ( void   )

Read avarage measured data GPS 1PPS.

Parameters:
none
Returns:
Base clock frequency(average 1(not ave!), 10, 100 & 1000)

Definition at line 235 of file frq_cuntr_f746.cpp.

uint32_t read_base_clock_frequency ( double  gatetime )

This is a "DEBUG PURPOSE" function Check Base clock frequency on TIM2 or/and TIM8+4 print internal data (need to define "DEBUG")

Parameters:
gatetime e.g. 1sec = 1.0f
Returns:
Frequency read_base_clock_frequency -> TIM2 data read_input_frequency -> TIM8+4 data

Definition at line 666 of file frq_cuntr_f746.cpp.

double read_compensated_freq_data_w_gt ( uint16_t  gt )

Read new frequency data with specific gate time.

Parameters:
gatetime [sec] (1 sec to over 1 hour)
Returns:
frequency data

Definition at line 132 of file frq_cuntr_f746.cpp.

double read_freq_data ( void   )

Read new frequency data (gate time = 1sec)

Parameters:
none
Returns:
frequency data

Definition at line 117 of file frq_cuntr_f746.cpp.

uint32_t read_newest_1pps ( void   )

Read newest measured data GPS 1PPS.

Parameters:
none
Returns:
Base clock frequency (newest(no avaraging value))

Definition at line 275 of file frq_cuntr_f746.cpp.

uint32_t read_num_in_buffer ( void   )

Read number of buffered data.

Parameters:
none
Returns:
number of data in the buffer

Definition at line 269 of file frq_cuntr_f746.cpp.

void recipro_start_measure ( void   )

Reciprocal measurement preparation for Reciprocal measurement -> recipro_start_measure check frequency input as IC trigger -> recipro_check_trigger read IC data -> recipro_read_data.

Definition at line 305 of file frq_cuntr_f746.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 200 of file frq_cuntr_f746.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 194 of file frq_cuntr_f746.cpp.

uint32_t status_gps ( void   )

Read GPS status.

Parameters:
none
Returns:
0: GPS is NOT ready not 0: 1PPS data is avairable & show gate_time for avarage

Definition at line 282 of file frq_cuntr_f746.cpp.