Data Structures | |
struct | io_ports_private_t |
struct | ll_io_port_t |
struct | io_ports_list_t |
struct | ff_data |
Macros | |
#define | MAX_PORTS (Output_AuxMax - Output_Aux0 + 1) |
Typedefs | |
typedef struct io_ports_list_t | io_ports_list_t |
Enumerations | |
enum | ioport_type_xxx_t { Port_AnalogIn = 0 , Port_AnalogOut , Port_DigitalIn , Port_DigitalOut } |
Functions | |
uint8_t | ioports_available (io_port_type_t type, io_port_direction_t dir) |
Get number of digital or analog ports available. More... | |
uint8_t | ioports_unclaimed (io_port_type_t type, io_port_direction_t dir) |
Get number of unclaimed digital or analog ports available. More... | |
uint8_t | ioport_find_free (io_port_type_t type, io_port_direction_t dir, pin_cap_t filter, const char *description) |
find first free or claimed digital or analog port. More... | |
xbar_t * | ioport_get_info (io_port_type_t type, io_port_direction_t dir, uint8_t port) |
Return information about a digital or analog port. More... | |
xbar_t * | ioport_claim (io_port_type_t type, io_port_direction_t dir, uint8_t *port, const char *description) |
Claim a digital or analog port for exclusive use. More... | |
void | ioport_assign_function (aux_ctrl_t *aux_ctrl, pin_function_t *function) |
Deprecated - use ioport_set_function() instead. More... | |
void | ioport_assign_out_function (aux_ctrl_out_t *aux_ctrl, pin_function_t *function) |
Deprecated - use ioport_set_function() instead. More... | |
bool | ioport_set_function (xbar_t *pin, pin_function_t function, driver_caps_t caps) |
Set pin function. More... | |
io_port_cando_t | ioports_can_do (void) |
Get basic ioports capabilities. More... | |
bool | ioport_can_claim_explicit (void) |
Deprecated - use ioports_can_do() instead. More... | |
bool | ioports_enumerate (io_port_type_t type, io_port_direction_t dir, pin_cap_t filter, ioports_enumerate_callback_ptr callback, void *data) |
Enumerate ports. More... | |
bool | ioport_set_description (io_port_type_t type, io_port_direction_t dir, uint8_t port, const char *description) |
Set pin description. More... | |
bool | ioport_analog_out (uint8_t port, float value) |
bool | ioport_digital_out (uint8_t port, uint32_t value) |
int32_t | ioport_wait_on_input (io_port_type_t type, uint8_t port, wait_mode_t wait_mode, float timeout) |
bool | ioport_analog_out_config (uint8_t port, pwm_config_t *config) |
bool | ioport_digital_in_config (uint8_t port, gpio_in_config_t *config) |
bool | ioport_enable_irq (uint8_t port, pin_irq_mode_t irq_mode, ioport_interrupt_callback_ptr handler) |
bool | ioport_digital_out_config (uint8_t port, gpio_out_config_t *config) |
bool | ioport_digital_pwm_config (uint8_t port, pwm_config_t *config) |
bool | ioports_add (io_ports_data_t *ports, io_port_type_t type, uint8_t n_in, uint8_t n_out) |
Deprecated - use ioports_add_analog() or ioports_add_digital() instead. More... | |
bool | ioports_add_analog (io_analog_t *analog) |
bool | ioports_add_digital (io_digital_t *digital) |
bool | ioports_precompute_pwm_values (pwm_config_t *config, ioports_pwm_t *pwm_data, uint32_t clock_hz) |
Precompute PWM values for faster conversion. More... | |
uint_fast16_t | ioports_compute_pwm_value (ioports_pwm_t *pwm_data, float value) |
Analog value to PWM conversion. More... | |
void | ioport_save_input_settings (xbar_t *xbar, gpio_in_config_t *config) |
void | ioport_save_output_settings (xbar_t *xbar, gpio_out_config_t *config) |
void | ioport_setting_changed (setting_id_t id) |
void | ioports_add_settings (driver_settings_load_ptr settings_loaded, setting_changed_ptr setting_changed) |
Some wrapper functions for the io_port_t API. They perform the necessary checks for both availability of ports and advanced functionality simplifying plugin code that uses them.
#define MAX_PORTS (Output_AuxMax - Output_Aux0 + 1) |
typedef struct io_ports_list_t io_ports_list_t |
enum ioport_type_xxx_t |
bool ioport_analog_out | ( | uint8_t | port, |
float | value | ||
) |
bool ioport_analog_out_config | ( | uint8_t | port, |
pwm_config_t * | config | ||
) |
void ioport_assign_function | ( | aux_ctrl_t * | aux_ctrl, |
pin_function_t * | function | ||
) |
Deprecated - use ioport_set_function() instead.
void ioport_assign_out_function | ( | aux_ctrl_out_t * | aux_ctrl, |
pin_function_t * | function | ||
) |
Deprecated - use ioport_set_function() instead.
bool ioport_can_claim_explicit | ( | void | ) |
Deprecated - use ioports_can_do() instead.
xbar_t* ioport_claim | ( | io_port_type_t | type, |
io_port_direction_t | dir, | ||
uint8_t * | port, | ||
const char * | description | ||
) |
Claim a digital or analog port for exclusive use.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |
port | pointer to a uint8_t holding the ports aux number, returns the actual port number to use if successful. |
description | pointer to a char constant for the pin description. |
bool ioport_digital_in_config | ( | uint8_t | port, |
gpio_in_config_t * | config | ||
) |
bool ioport_digital_out | ( | uint8_t | port, |
uint32_t | value | ||
) |
bool ioport_digital_out_config | ( | uint8_t | port, |
gpio_out_config_t * | config | ||
) |
bool ioport_digital_pwm_config | ( | uint8_t | port, |
pwm_config_t * | config | ||
) |
bool ioport_enable_irq | ( | uint8_t | port, |
pin_irq_mode_t | irq_mode, | ||
ioport_interrupt_callback_ptr | handler | ||
) |
uint8_t ioport_find_free | ( | io_port_type_t | type, |
io_port_direction_t | dir, | ||
pin_cap_t | filter, | ||
const char * | description | ||
) |
find first free or claimed digital or analog port.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |
description | pointer to a char constant for the pin description of a previousely claimed port or NULL if searching for the first free port. |
xbar_t* ioport_get_info | ( | io_port_type_t | type, |
io_port_direction_t | dir, | ||
uint8_t | port | ||
) |
Return information about a digital or analog port.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |
port | the port aux number. |
void ioport_save_input_settings | ( | xbar_t * | xbar, |
gpio_in_config_t * | config | ||
) |
void ioport_save_output_settings | ( | xbar_t * | xbar, |
gpio_out_config_t * | config | ||
) |
bool ioport_set_description | ( | io_port_type_t | type, |
io_port_direction_t | dir, | ||
uint8_t | port, | ||
const char * | description | ||
) |
Set pin description.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |
port | the port aux number. |
description | pointer to a char constant for the pin description. |
bool ioport_set_function | ( | xbar_t * | pin, |
pin_function_t | function, | ||
driver_caps_t | caps | ||
) |
Set pin function.
port | pointer to a xbar_t structure. |
function | a pin_function_t enum value. |
caps | pointer to driver_caps_t capability flags. |
void ioport_setting_changed | ( | setting_id_t | id | ) |
int32_t ioport_wait_on_input | ( | io_port_type_t | type, |
uint8_t | port, | ||
wait_mode_t | wait_mode, | ||
float | timeout | ||
) |
bool ioports_add | ( | io_ports_data_t * | ports, |
io_port_type_t | type, | ||
uint8_t | n_in, | ||
uint8_t | n_out | ||
) |
Deprecated - use ioports_add_analog() or ioports_add_digital() instead.
bool ioports_add_analog | ( | io_analog_t * | analog | ) |
bool ioports_add_digital | ( | io_digital_t * | digital | ) |
void ioports_add_settings | ( | driver_settings_load_ptr | settings_loaded, |
setting_changed_ptr | setting_changed | ||
) |
uint8_t ioports_available | ( | io_port_type_t | type, |
io_port_direction_t | dir | ||
) |
Get number of digital or analog ports available.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |
io_port_cando_t ioports_can_do | ( | void | ) |
Get basic ioports capabilities.
uint_fast16_t ioports_compute_pwm_value | ( | ioports_pwm_t * | pwm_data, |
float | value | ||
) |
Analog value to PWM conversion.
pwm_data | pointer to a ioports_pwm_t structure. |
value | analog value to be converted. |
NOTE: ioports_precompute_pwm_values() must be called to precompute values before this function is called. Typically this is done by the ioports initialization code.
bool ioports_enumerate | ( | io_port_type_t | type, |
io_port_direction_t | dir, | ||
pin_cap_t | filter, | ||
ioports_enumerate_callback_ptr | callback, | ||
void * | data | ||
) |
Enumerate ports.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |
filter | a pin_cap_t union with fields set that must match the port capabilities. |
callback | pointer to a ioports_enumerate_callback_ptr function that will be called for each matching port. If the function returns true the enumeration will end. |
data | a pointer to context data passed to the callback function. |
bool ioports_precompute_pwm_values | ( | pwm_config_t * | config, |
ioports_pwm_t * | pwm_data, | ||
uint32_t | clock_hz | ||
) |
Precompute PWM values for faster conversion.
config | pointer to a pwm_config_t structure. |
pwm_data | pointer to a ioports_pwm_t structure, to hold the precomputed values. |
clock_hz | timer clock frequency used for PWM generation. |
uint8_t ioports_unclaimed | ( | io_port_type_t | type, |
io_port_direction_t | dir | ||
) |
Get number of unclaimed digital or analog ports available.
type | as an io_port_type_t enum value. |
dir | as an io_port_direction_t enum value. |