Microchip® Advanced Software Framework

ioport.h File Reference

Common IOPORT service main header file for AVR, UC3 and ARM architectures.

Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.

#include <parts.h>
#include <compiler.h>

Enumerations

enum  ioport_direction {
  IOPORT_DIR_INPUT,
  IOPORT_DIR_OUTPUT
}
 IOPORT pin directions. More...
 
enum  ioport_sense {
  IOPORT_SENSE_BOTHEDGES,
  IOPORT_SENSE_RISING,
  IOPORT_SENSE_FALLING
}
 
enum  ioport_value {
  IOPORT_PIN_LEVEL_LOW,
  IOPORT_PIN_LEVEL_HIGH
}
 IOPORT levels. More...
 

Functions

static void ioport_disable_pin (ioport_pin_t pin)
 Disable IOPORT pin, based on a pin created with IOPORT_CREATE_PIN(). More...
 
static void ioport_disable_port (ioport_port_t port, ioport_port_mask_t mask)
 Disable multiple pins in a single IOPORT port. More...
 
static void ioport_enable_pin (ioport_pin_t pin)
 Enable an IOPORT pin, based on a pin created with IOPORT_CREATE_PIN(). More...
 
static void ioport_enable_port (ioport_port_t port, ioport_port_mask_t mask)
 Enable multiple pins in a single IOPORT port. More...
 
static bool ioport_get_pin_level (ioport_pin_t pin)
 Get current value of an IOPORT pin, which has been configured as an input. More...
 
static ioport_port_mask_t ioport_get_port_level (ioport_pin_t port, ioport_port_mask_t mask)
 Get current value of several IOPORT pins in a single port, which have been configured as an inputs. More...
 
static void ioport_init (void)
 Initializes the IOPORT service, ready for use. More...
 
static ioport_port_mask_t ioport_pin_to_mask (ioport_pin_t pin)
 Convert a pin ID into a bitmask mask for the given pin on its port. More...
 
static ioport_port_t ioport_pin_to_port_id (ioport_pin_t pin)
 Convert a pin ID into a its port ID. More...
 
static void ioport_reset_pin_mode (ioport_pin_t pin)
 Reset pin mode configuration for a single IOPORT pin. More...
 
static void ioport_reset_port_mode (ioport_port_t port, ioport_port_mask_t mask)
 Reset multiple pin modes in a specified IOPORT port to defaults. More...
 
static void ioport_set_pin_dir (ioport_pin_t pin, enum ioport_direction dir)
 Set direction for a single IOPORT pin. More...
 
static void ioport_set_pin_level (ioport_pin_t pin, bool level)
 Set an IOPORT pin to a specified logical value. More...
 
static void ioport_set_pin_mode (ioport_pin_t pin, ioport_mode_t mode)
 Set pin mode for one single IOPORT pin. More...
 
static void ioport_set_pin_sense_mode (ioport_pin_t pin, enum ioport_sense pin_sense)
 Set the pin sense mode of a single IOPORT pin. More...
 
static void ioport_set_port_dir (ioport_port_t port, ioport_port_mask_t mask, enum ioport_direction dir)
 Set I/O direction for a group of pins in a single IOPORT. More...
 
static void ioport_set_port_level (ioport_port_t port, ioport_port_mask_t mask, enum ioport_value level)
 Set a group of IOPORT pins in a single port to a specified logical value. More...
 
static void ioport_set_port_mode (ioport_port_t port, ioport_port_mask_t mask, ioport_mode_t mode)
 Set multiple pin modes in a single IOPORT port, such as pull-up, pull-down, etc. More...
 
static void ioport_set_port_sense_mode (ioport_port_t port, ioport_port_mask_t mask, enum ioport_sense pin_sense)
 Set the pin sense mode of a multiple IOPORT pins on a single port. More...
 
static void ioport_toggle_pin_level (ioport_pin_t pin)
 Toggle the value of an IOPORT pin, which has previously configured as an output. More...
 
static void ioport_toggle_port_level (ioport_port_t port, ioport_port_mask_t mask)
 Toggle the values of several IOPORT pins located in a single port. More...