MCUXpresso SDK API Reference Manual  Rev 2.16.000
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Lpc_freqme

Overview

Data Structures

union  freqme_mode_attribute_t
 The union of operate mode attribute. More...
 
struct  freq_measure_config_t
 The structure of freqme module basic configuration, including operate mode, operate mode attribute and so on. More...
 

Enumerations

enum  _freqme_interrupt_status_flags {
  kFREQME_UnderflowInterruptStatusFlag = FREQME_CTRLSTAT_LT_MIN_STAT_MASK,
  kFREQME_OverflowInterruptStatusFlag = FREQME_CTRLSTAT_GT_MAX_STAT_MASK,
  kFREQME_ReadyInterruptStatusFlag = FREQME_CTRLSTAT_RESULT_READY_STAT_MASK,
  kFREQME_AllInterruptStatusFlags
}
 The enumeration of interrupt status flags. More...
 
enum  _freqme_interrupt_enable {
  kFREQME_UnderflowInterruptEnable = FREQME_CTRL_W_LT_MIN_INT_EN_MASK,
  kFREQME_OverflowInterruptEnable = FREQME_CTRL_W_GT_MAX_INT_EN_MASK,
  kFREQME_ReadyInterruptEnable = FREQME_CTRL_W_RESULT_READY_INT_EN_MASK
}
 The enumeration of interrupts, including underflow interrupt, overflow interrupt, and result ready interrupt. More...
 
enum  freqme_operate_mode_t {
  kFREQME_FreqMeasurementMode = 0U,
  kFREOME_PulseWidthMeasurementMode
}
 FREQME module operate mode enumeration, including frequency measurement mode and pulse width measurement mode. More...
 
enum  freqme_pulse_polarity_t {
  kFREQME_PulseHighPeriod = 0U,
  kFREQME_PulseLowPeriod
}
 The enumeration of pulse polarity. More...
 

Driver version

#define FSL_FREQME_DRIVER_VERSION   (MAKE_VERSION(2, 1, 2))
 FREQME driver version 2.1.2. More...
 

Basic Control APIs

void FREQME_Init (FREQME_Type *base, const freq_measure_config_t *config)
 Initialize freqme module, set operate mode, operate mode attribute and initialize measurement cycle. More...
 
void FREQME_GetDefaultConfig (freq_measure_config_t *config)
 Get default configuration. More...
 
static void FREQME_StartMeasurementCycle (FREQME_Type *base)
 Start frequency or pulse width measurement process. More...
 
static void FREQME_TerminateMeasurementCycle (FREQME_Type *base)
 Force the termination of any measurement cycle currently in progress and resets RESULT or just reset RESULT if the module in idle state. More...
 
static void FREQME_EnableContinuousMode (FREQME_Type *base, bool enable)
 Enable/disable Continuous mode. More...
 
static bool FREQME_CheckContinuousMode (FREQME_Type *base)
 Check whether continuous mode is enabled. More...
 
static void FREQME_SetOperateMode (FREQME_Type *base, freqme_operate_mode_t operateMode)
 Set operate mode of freqme module. More...
 
static bool FREQME_CheckOperateMode (FREQME_Type *base)
 Check module's operate mode. More...
 
static void FREQME_SetMinExpectedValue (FREQME_Type *base, uint32_t minValue)
 Set the minimum expected value for the measurement result. More...
 
static void FREQME_SetMaxExpectedValue (FREQME_Type *base, uint32_t maxValue)
 Set the maximum expected value for the measurement result. More...
 

Frequency Measurement Mode Control APIs

uint32_t FREQME_CalculateTargetClkFreq (FREQME_Type *base, uint32_t refClkFrequency)
 Calculate the frequency of selected target clock。 More...
 
static uint8_t FREQME_GetReferenceClkScaleValue (FREQME_Type *base)
 Get reference clock scaling factor. More...
 

Pulse Width Measurement Mode Control APIs

static void FREQME_SetPulsePolarity (FREQME_Type *base, freqme_pulse_polarity_t pulsePolarity)
 Set pulse polarity when operate mode is selected as Pulse Width Measurement mode. More...
 
static bool FREQME_CheckPulsePolarity (FREQME_Type *base)
 Check pulse polarity when the operate mode is selected as pulse width measurement mode. More...
 
static uint32_t FREQME_GetMeasurementResult (FREQME_Type *base)
 Get measurement result, if operate mode is selected as pulse width measurement mode this function can be used to calculate pulse width. More...
 

Status Control APIs

static uint32_t FREQME_GetInterruptStatusFlags (FREQME_Type *base)
 Get interrupt status flags, such as overflow interrupt status flag, underflow interrupt status flag, and so on. More...
 
static void FREQME_ClearInterruptStatusFlags (FREQME_Type *base, uint32_t statusFlags)
 Clear interrupt status flags. More...
 

Interrupt Control APIs

static void FREQME_EnableInterrupts (FREQME_Type *base, uint32_t masks)
 Enable interrupts, such as result ready interrupt, overflow interrupt and so on. More...
 
static void FREQME_DisableInterrupts (FREQME_Type *base, uint32_t masks)
 Disable interrupts, such as result ready interrupt, overflow interrupt and so on. More...
 

Data Structure Documentation

union freqme_mode_attribute_t
Note
If the operate mode is selected as frequency measurement mode the member refClkScaleFactor should be used, if the operate mode is selected as pulse width measurement mode the member pulsePolarity should be used.

Data Fields

uint8_t refClkScaleFactor
 Only useful in frequency measurement operate mode, used to set the reference clock counter scaling factor. More...
 
freqme_pulse_polarity_t pulsePolarity
 Only Useful in pulse width measurement operate mode, used to set period polarity. More...
 

Field Documentation

uint8_t freqme_mode_attribute_t::refClkScaleFactor
freqme_pulse_polarity_t freqme_mode_attribute_t::pulsePolarity
struct freq_measure_config_t

Data Fields

freqme_operate_mode_t operateMode
 Select operate mode, please refer to freqme_operate_mode_t. More...
 
freqme_mode_attribute_t operateModeAttribute
 
   Used to set the attribute of the selected operate mode, if

the operate mode is selected as kFREQME_FreqMeasurementMode set freqme_mode_attribute_t::refClkScaleFactor, if operate mode is selected as kFREOME_PulseWidthMeasurementMode, please set freqme_mode_attribute_t::pulsePolarity. More...

 
bool enableContinuousMode
 Enable/disable continuous mode, if continuous mode is enable, the measurement is performed continuously and the result for the last completed measurement is available in the result register. More...
 

Field Documentation

freqme_operate_mode_t freq_measure_config_t::operateMode
freqme_mode_attribute_t freq_measure_config_t::operateModeAttribute
bool freq_measure_config_t::enableContinuousMode

Macro Definition Documentation

#define FSL_FREQME_DRIVER_VERSION   (MAKE_VERSION(2, 1, 2))

Enumeration Type Documentation

Enumerator
kFREQME_UnderflowInterruptStatusFlag 

Indicate the measurement is just done and the result is less than minimun value.

kFREQME_OverflowInterruptStatusFlag 

Indicate the measurement is just done and the result is greater than maximum value.

kFREQME_ReadyInterruptStatusFlag 

Indicate the measurement is just done and the result is ready to read.

kFREQME_AllInterruptStatusFlags 

All interrupt status flags.

Enumerator
kFREQME_UnderflowInterruptEnable 

Enable interrupt when the result is less than minimum value.

kFREQME_OverflowInterruptEnable 

Enable interrupt when the result is greater than maximum value.

kFREQME_ReadyInterruptEnable 

Enable interrupt when a measurement completes and the result is ready.

Enumerator
kFREQME_FreqMeasurementMode 

The module works in the frequency measurement mode.

kFREOME_PulseWidthMeasurementMode 

The module works in the pulse width measurement mode.

Enumerator
kFREQME_PulseHighPeriod 

Select high period of the reference clock.

kFREQME_PulseLowPeriod 

Select low period of the reference clock.

Function Documentation

void FREQME_Init ( FREQME_Type *  base,
const freq_measure_config_t config 
)
Parameters
baseFREQME peripheral base address.
configThe pointer to module basic configuration, please refer to freq_measure_config_t.
void FREQME_GetDefaultConfig ( freq_measure_config_t config)
* config->operateMode = kFREQME_FreqMeasurementMode;
* config->operateModeAttribute.refClkScaleFactor = 0U;
* config->enableContinuousMode = false;
* config->startMeasurement = false;
*
Parameters
configThe pointer to module basic configuration, please refer to freq_measure_config_t.
static void FREQME_StartMeasurementCycle ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
static void FREQME_TerminateMeasurementCycle ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
static void FREQME_EnableContinuousMode ( FREQME_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
enableUsed to enable/disable continuous mode,
  • true Enable Continuous mode.
  • false Disable Continuous mode.
static bool FREQME_CheckContinuousMode ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
Return values
TrueContinuous mode is enabled, the measurement is performed continuously.
FalseContinuous mode is disabled.
static void FREQME_SetOperateMode ( FREQME_Type *  base,
freqme_operate_mode_t  operateMode 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
operateModeThe operate mode to be set, please refer to freqme_operate_mode_t.
static bool FREQME_CheckOperateMode ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
Return values
TruePulse width measurement mode.
FalseFrequency measurement mode.
static void FREQME_SetMinExpectedValue ( FREQME_Type *  base,
uint32_t  minValue 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
minValueThe minimum value to set, please note that this value is 31 bits width.
static void FREQME_SetMaxExpectedValue ( FREQME_Type *  base,
uint32_t  maxValue 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
maxValueThe maximum value to set, please note that this value is 31 bits width.
uint32_t FREQME_CalculateTargetClkFreq ( FREQME_Type *  base,
uint32_t  refClkFrequency 
)
Note
The formula: Ftarget = (RESULT - 2) * Freference / 2 ^ REF_SCALE.
This function only useful when the operate mode is selected as frequency measurement mode.
Parameters
baseFREQME peripheral base address.
refClkFrequencyThe frequency of reference clock.
Returns
The frequency of target clock the unit is Hz, if the output result is 0, please check the module's operate mode.
static uint8_t FREQME_GetReferenceClkScaleValue ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
Returns
Reference clock scaling factor, the reference count cycle is 2 ^ ref_scale.
static void FREQME_SetPulsePolarity ( FREQME_Type *  base,
freqme_pulse_polarity_t  pulsePolarity 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
pulsePolarityThe pulse polarity to be set, please refer to freqme_pulse_polarity_t.
static bool FREQME_CheckPulsePolarity ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
Return values
TrueLow period.
FalseHigh period.
static uint32_t FREQME_GetMeasurementResult ( FREQME_Type *  base)
inlinestatic
Note
Pulse width = counter result / Frequency of target clock.
Parameters
baseFREQME peripheral base address.
Returns
Measurement result.
static uint32_t FREQME_GetInterruptStatusFlags ( FREQME_Type *  base)
inlinestatic
Parameters
baseFREQME peripheral base address.
Returns
Current interrupt status flags, should be the OR'ed value of _freqme_interrupt_status_flags.
static void FREQME_ClearInterruptStatusFlags ( FREQME_Type *  base,
uint32_t  statusFlags 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
statusFlagsThe combination of interrupt status flags to clear, should be the OR'ed value of _freqme_interrupt_status_flags.
static void FREQME_EnableInterrupts ( FREQME_Type *  base,
uint32_t  masks 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
masksThe mask of interrupts to enable, should be the OR'ed value of _freqme_interrupt_enable.
static void FREQME_DisableInterrupts ( FREQME_Type *  base,
uint32_t  masks 
)
inlinestatic
Parameters
baseFREQME peripheral base address.
masksThe mask of interrupts to disable, should be the OR'ed value of _freqme_interrupt_enable.