NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_gpio.c File Reference

General purpose input/output port unit (GPIO) HW driver source file. #include <neorv32.h> More...

#include <neorv32.h>

Functions

int neorv32_gpio_available (void)
 
void neorv32_gpio_pin_set (int pin, int value)
 
void neorv32_gpio_pin_toggle (int pin)
 
uint32_t neorv32_gpio_pin_get (int pin)
 
void neorv32_gpio_port_set (uint32_t pin_mask)
 
void neorv32_gpio_port_toggle (uint32_t pin_mask)
 
uint32_t neorv32_gpio_port_get (void)
 
void neorv32_gpio_irq_setup (int pin, int trigger)
 
void neorv32_gpio_irq_enable (uint32_t pin_mask)
 
void neorv32_gpio_irq_disable (uint32_t pin_mask)
 
uint32_t neorv32_gpio_irq_get (void)
 
void neorv32_gpio_irq_clr (uint32_t clr_mask)
 

Detailed Description

General purpose input/output port unit (GPIO) HW driver source file. #include <neorv32.h>

Function Documentation

◆ neorv32_gpio_available()

int neorv32_gpio_available ( void )

Check if GPIO unit was synthesized.

Returns
0 if GPIO was not synthesized, 1 if GPIO is available.

◆ neorv32_gpio_irq_clr()

void neorv32_gpio_irq_clr ( uint32_t clr_mask)

Clear pending GPIO input interrupts via bit mask.

Parameters
[in]clr_maskClear mask (bit high = clear according pending interrupt).

◆ neorv32_gpio_irq_disable()

void neorv32_gpio_irq_disable ( uint32_t pin_mask)

Disable input pin interrupt(s).

Parameters
[in]pin_maskPin-IRQ enable mask (set to 1 to disable the according pin).

◆ neorv32_gpio_irq_enable()

void neorv32_gpio_irq_enable ( uint32_t pin_mask)

Enable input pin interrupt(s).

Parameters
[in]pin_maskPin-IRQ enable mask (set to 1 to enable the according pin).

◆ neorv32_gpio_irq_get()

uint32_t neorv32_gpio_irq_get ( void )

Get currently pending GPIO input interrupts.

Parameters
[in]Pendinginputs (bit mask; high = pending).

◆ neorv32_gpio_irq_setup()

void neorv32_gpio_irq_setup ( int pin,
int trigger )

Configure pin interrupt trigger.

Parameters
[in]pinInput pin select (0..31).
[in]triggerTrigger select (GPIO_TRIGGER_enum).

◆ neorv32_gpio_pin_get()

uint32_t neorv32_gpio_pin_get ( int pin)

Get single pin of GPIO's input port.

Parameters
[in]pinInput pin to be read (0..31).
Returns
zero if pin is low, non-zero if pin is high.

◆ neorv32_gpio_pin_set()

void neorv32_gpio_pin_set ( int pin,
int value )

Set single pin of GPIO's output port.

Parameters
[in]pinOutput pin number to be set (0..31).
[in]valueSet pint high (1) or low (0).

◆ neorv32_gpio_pin_toggle()

void neorv32_gpio_pin_toggle ( int pin)

Toggle single pin of GPIO's output port.

Parameters
[in]pinOutput pin number to be toggled (0..31).

◆ neorv32_gpio_port_get()

uint32_t neorv32_gpio_port_get ( void )

Get complete GPIO input port.

Returns
Current input port state (32-bit).

◆ neorv32_gpio_port_set()

void neorv32_gpio_port_set ( uint32_t pin_mask)

Set complete GPIO output port.

Parameters
[in]pin_maskNew output port value (32-bit).

◆ neorv32_gpio_port_toggle()

void neorv32_gpio_port_toggle ( uint32_t pin_mask)

Toggle bit in entire GPIO output port.

Parameters
[in]pin_maskBit mask; set bits will toggle the according output pins (32-bit).