CMSIS-Driver_PIC32CM-JH  
Peripheral Library (PLIB) Documentation
 
Loading...
Searching...
No Matches
FREQM Interface

Driver API for FREQM (plib_freqm.h) More...

Typedefs

typedef void(* FREQM_CALLBACK_HANDLER) (uint8_t flags)
 FREQM interrupt callback function type.
 

Enumerations

enum  FREQM_STATUS { FREQM_STATUS_BUSY , FREQM_STATUS_OVERFLOW }
 FREQM Status bits. More...
 

Functions

void FREQM_Enable (void)
 Enables the FREQM peripheral.
 
void FREQM_Disable (void)
 Disables the FREQM peripheral.
 
void FREQM_SetRefNum (uint8_t refnum)
 Set REFNUM.
 
void FREQM_SoftwareReset (void)
 Reset the FREQM peripheral.
 
bool FREQM_StartMeasurement (void)
 Start the frequency measurement.
 
uint32_t FREQM_GetFrequency (uint32_t ref_clk)
 Get the frequency value.
 
bool FREQM_GetStatus (FREQM_STATUS status)
 Check the FREQM status.
 
void FREQM_ClearOverflowStatus (void)
 Clear the overflow status bit.
 
void FREQM_EnableInterrupt (void)
 Enable the Measurement Done Interrupt.
 
void FREQM_DisableInterrupt (void)
 Disable the Measurement Done Interrupt.
 
void FREQM_ClearInterruptFlag (void)
 Clear the Measurement Done Interrupt Flag.
 
void FREQM_SetCallbackHandler (FREQM_CALLBACK_HANDLER callback)
 Register a callback function for FREQM interrupt.
 

Description

Driver API for FREQM (plib_freqm.h)

Usage Example

The following example demonstrates typical usage of the FREQM peripheral:

#include "plib_freqm.h"
#include <pic32c.h>
#include <stdint.h>
/* Example callback function for freqm interrupts */
void freqmCallback(uint8_t flags)
{
static uint32_t cfg_ref_clk = 32768UL;
static uint32_t freq;
(void)flags;
{
//Clear overflow status and try reducing the refnum and start a new measurement.
}
else
{
/*Read the frequency value*/
freq = FREQM_GetFrequency(cfg_ref_clk);
(void)freq;
}
}
int32_t configure_freqm(void)
{
/* Configuration constants */
uint8_t refnum = 128;
/* Perform a software reset to ensure the FREQM is in a known state */
/*Set the number of reference clock cycles*/
FREQM_SetRefNum(refnum);
/* Register the user callback handler for FREQM interrupts */
FREQM_SetCallbackHandler(&freqmCallback);
/* Enable FREQM interrupt */
/*Enable the FREQM peripheral*/
/* Enable NVIC interrupt handling for the FREQM module */
NVIC_EnableIRQ(FREQM_IRQn);
/*Start the frequency measurement*/
return 0;
}
void FREQM_SetRefNum(uint8_t refnum)
Set REFNUM.
void FREQM_SetCallbackHandler(FREQM_CALLBACK_HANDLER callback)
Register a callback function for FREQM interrupt.
void FREQM_SoftwareReset(void)
Reset the FREQM peripheral.
void FREQM_EnableInterrupt(void)
Enable the Measurement Done Interrupt.
bool FREQM_StartMeasurement(void)
Start the frequency measurement.
uint32_t FREQM_GetFrequency(uint32_t ref_clk)
Get the frequency value.
void FREQM_Enable(void)
Enables the FREQM peripheral.
bool FREQM_GetStatus(FREQM_STATUS status)
Check the FREQM status.
@ FREQM_STATUS_OVERFLOW
Definition plib_freqm.h:66
FREQM Peripheral Library Common Definitions.

Typedef Documentation

◆ FREQM_CALLBACK_HANDLER

typedef void(* FREQM_CALLBACK_HANDLER) (uint8_t flags)

FREQM interrupt callback function type.

Enumeration Type Documentation

◆ FREQM_STATUS

FREQM Status bits.

Enumerator
FREQM_STATUS_BUSY 
FREQM_STATUS_OVERFLOW 

Function Documentation

◆ FREQM_ClearInterruptFlag()

void FREQM_ClearInterruptFlag ( void )

Clear the Measurement Done Interrupt Flag.

◆ FREQM_ClearOverflowStatus()

void FREQM_ClearOverflowStatus ( void )

Clear the overflow status bit.

◆ FREQM_Disable()

void FREQM_Disable ( void )

Disables the FREQM peripheral.

◆ FREQM_DisableInterrupt()

void FREQM_DisableInterrupt ( void )

Disable the Measurement Done Interrupt.

◆ FREQM_Enable()

void FREQM_Enable ( void )

Enables the FREQM peripheral.

◆ FREQM_EnableInterrupt()

void FREQM_EnableInterrupt ( void )

Enable the Measurement Done Interrupt.

◆ FREQM_GetFrequency()

uint32_t FREQM_GetFrequency ( uint32_t ref_clk)

Get the frequency value.

Parameters
ref_clkReference clock frequency

◆ FREQM_GetStatus()

bool FREQM_GetStatus ( FREQM_STATUS status)

Check the FREQM status.

Parameters
statusStatus to be checked
Returns
true if the status bit is set, false otherwise.

◆ FREQM_SetCallbackHandler()

void FREQM_SetCallbackHandler ( FREQM_CALLBACK_HANDLER callback)

Register a callback function for FREQM interrupt.

Parameters
callbackPointer to the callback function.

◆ FREQM_SetRefNum()

void FREQM_SetRefNum ( uint8_t refnum)

Set REFNUM.

Parameters
refnumSet the number of reference clock cycles

◆ FREQM_SoftwareReset()

void FREQM_SoftwareReset ( void )

Reset the FREQM peripheral.

◆ FREQM_StartMeasurement()

bool FREQM_StartMeasurement ( void )

Start the frequency measurement.