NEORV32 API Reference
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_gptmr.c File Reference

General purpose timer (GPTMR) HW driver source file. More...

#include <neorv32.h>

Functions

int neorv32_gptmr_available (void)
 
int neorv32_gptmr_get_num_slices (void)
 
void neorv32_gptmr_setup (int prsc)
 
void neorv32_gptmr_enable_single (int sel)
 
void neorv32_gptmr_disable_single (int sel)
 
void neorv32_gptmr_enable_mask (uint16_t mask)
 
void neorv32_gptmr_disable_mask (uint16_t mask)
 
void neorv32_gptmr_configure (int sel, uint32_t cnt, uint32_t thr, int mode)
 
int neorv32_gptmr_irq_get (void)
 
void neorv32_gptmr_irq_ack (int sel)
 

Detailed Description

General purpose timer (GPTMR) HW driver source file.

Function Documentation

◆ neorv32_gptmr_available()

int neorv32_gptmr_available ( void )

Check if general purpose timer unit was synthesized.

Returns
0 if GPTMR was not synthesized, non-zero if GPTMR is available.

◆ neorv32_gptmr_configure()

void neorv32_gptmr_configure ( int sel,
uint32_t cnt,
uint32_t thr,
int mode )

Configure timer slice.

Parameters
[in]selTimer slice to enable (0..15).
[in]cntInitial counter value (32-bit).
[in]thrCounter threshold value (32-bit).
[in]ModeOperation mode: 0 = continuous mode, 1 = single-shot mode.

◆ neorv32_gptmr_disable_mask()

void neorv32_gptmr_disable_mask ( uint16_t mask)

Disable multiple GPTMR timer slices.

Parameters
[in]maskBit mask, one bit for each slice; bit set = disable slice.

◆ neorv32_gptmr_disable_single()

void neorv32_gptmr_disable_single ( int sel)

Disable single GPTMR timer slice.

Parameters
[in]selTimer slice to disable (0..15).

◆ neorv32_gptmr_enable_mask()

void neorv32_gptmr_enable_mask ( uint16_t mask)

Disable multiple GPTMR timer slices.

Parameters
[in]maskBit mask, one bit for each slice; bit set = enable slice.

◆ neorv32_gptmr_enable_single()

void neorv32_gptmr_enable_single ( int sel)

Disable single GPTMR timer slice.

Parameters
[in]selTimer slice to enable (0..15).

◆ neorv32_gptmr_get_num_slices()

int neorv32_gptmr_get_num_slices ( void )

Get number of implemented GPTMR timer slices.

Returns
Number of implemented GPTMR slices (0..16).

◆ neorv32_gptmr_irq_ack()

void neorv32_gptmr_irq_ack ( int sel)

Clear pending timer interrupt.

Parameters
[in]selTimer slice interrupt to acknowledge/clear (0..15); no pending interrupt is cleared if an other value is provided).

◆ neorv32_gptmr_irq_get()

int neorv32_gptmr_irq_get ( void )

Get highest-priority pending interrupt.

Returns
Id of highest-priority pending slice interrupt (0..15). -1 if no interrupt is pending.

◆ neorv32_gptmr_setup()

void neorv32_gptmr_setup ( int prsc)

Reset module and configure GPTMR global clock prescaler.

Parameters
[in]prscClock prescaler select (0..7). See NEORV32_CLOCK_PRSC_enum.