The KSDK provides a driver for the Port Control and Interrupts (PORT) module of Kinetis devices.
Typical configuration use case
Input PORT configuration
kPORT_OpenDrainDisable,
kPORT_UnLockRegister,
};
I2C PORT Configuration
kPORT_OpenDrainEnable,
kPORT_UnLockRegister,
};
|
enum | _port_pull {
kPORT_PullDisable = 0U,
kPORT_PullDown = 2U,
kPORT_PullUp = 3U
} |
| Internal resistor pull feature selection. More...
|
|
enum | _port_slew_rate {
kPORT_FastSlewRate = 0U,
kPORT_SlowSlewRate = 1U
} |
| Slew rate selection. More...
|
|
enum | _port_passive_filter_enable {
kPORT_PassiveFilterDisable = 0U,
kPORT_PassiveFilterEnable = 1U
} |
| Passive filter feature enable/disable. More...
|
|
enum | _port_drive_strength {
kPORT_LowDriveStrength = 0U,
kPORT_HighDriveStrength = 1U
} |
| Configures the drive strength. More...
|
|
enum | port_mux_t {
kPORT_PinDisabledOrAnalog = 0U,
kPORT_MuxAsGpio = 1U,
kPORT_MuxAlt2 = 2U,
kPORT_MuxAlt3 = 3U,
kPORT_MuxAlt4 = 4U,
kPORT_MuxAlt5 = 5U,
kPORT_MuxAlt6 = 6U,
kPORT_MuxAlt7 = 7U
} |
| Pin mux selection. More...
|
|
enum | port_interrupt_t {
kPORT_InterruptOrDMADisabled = 0x0U,
kPORT_InterruptLogicZero = 0x8U,
kPORT_InterruptRisingEdge = 0x9U,
kPORT_InterruptFallingEdge = 0xAU,
kPORT_InterruptEitherEdge = 0xBU,
kPORT_InterruptLogicOne = 0xCU
} |
| Configures the interrupt generation condition. More...
|
|
Data Fields |
uint16_t | pullSelect: 2 |
| No-pull/pull-down/pull-up select.
|
|
uint16_t | slewRate: 1 |
| Fast/slow slew rate Configure.
|
|
uint16_t | passiveFilterEnable: 1 |
| Passive filter enable/disable.
|
|
uint16_t | driveStrength: 1 |
| Fast/slow drive strength configure.
|
|
uint16_t | mux: 3 |
| Pin mux Configure.
|
|
Enumerator |
---|
kPORT_PullDisable |
Internal pull-up/down resistor is disabled.
|
kPORT_PullDown |
Internal pull-down resistor is enabled.
|
kPORT_PullUp |
Internal pull-up resistor is enabled.
|
Enumerator |
---|
kPORT_FastSlewRate |
Fast slew rate is configured.
|
kPORT_SlowSlewRate |
Slow slew rate is configured.
|
Enumerator |
---|
kPORT_PassiveFilterDisable |
Fast slew rate is configured.
|
kPORT_PassiveFilterEnable |
Slow slew rate is configured.
|
Enumerator |
---|
kPORT_LowDriveStrength |
Low-drive strength is configured.
|
kPORT_HighDriveStrength |
High-drive strength is configured.
|
Enumerator |
---|
kPORT_PinDisabledOrAnalog |
Corresponding pin is disabled, but is used as an analog pin.
|
kPORT_MuxAsGpio |
Corresponding pin is configured as GPIO.
|
kPORT_MuxAlt2 |
Chip-specific.
|
kPORT_MuxAlt3 |
Chip-specific.
|
kPORT_MuxAlt4 |
Chip-specific.
|
kPORT_MuxAlt5 |
Chip-specific.
|
kPORT_MuxAlt6 |
Chip-specific.
|
kPORT_MuxAlt7 |
Chip-specific.
|
Enumerator |
---|
kPORT_InterruptOrDMADisabled |
Interrupt/DMA request is disabled.
|
kPORT_InterruptLogicZero |
Interrupt when logic zero.
|
kPORT_InterruptRisingEdge |
Interrupt on rising edge.
|
kPORT_InterruptFallingEdge |
Interrupt on falling edge.
|
kPORT_InterruptEitherEdge |
Interrupt on either edge.
|
kPORT_InterruptLogicOne |
Interrupt when logic one.
|
static void PORT_SetPinConfig |
( |
PORT_Type * |
base, |
|
|
uint32_t |
pin, |
|
|
const port_pin_config_t * |
config |
|
) |
| |
|
inlinestatic |
This is an example to define an input pin or output pin PCR configuration:
*
* kPORT_OpenDrainDisable,
* kPORT_UnLockRegister,
* };
*
- Parameters
-
base | PORT peripheral base pointer. |
pin | PORT pin number. |
config | PORT PCR register configuration structure. |
static void PORT_SetMultiplePinsConfig |
( |
PORT_Type * |
base, |
|
|
uint32_t |
mask, |
|
|
const port_pin_config_t * |
config |
|
) |
| |
|
inlinestatic |
This is an example to define input pins or output pins PCR configuration:
*
* kPORT_PullEnable,
* kPORT_OpenDrainDisable,
* kPORT_UnlockRegister,
* };
*
- Parameters
-
base | PORT peripheral base pointer. |
mask | PORT pin number macro. |
config | PORT PCR register configuration structure. |
static void PORT_SetPinMux |
( |
PORT_Type * |
base, |
|
|
uint32_t |
pin, |
|
|
port_mux_t |
mux |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | PORT peripheral base pointer. |
pin | PORT pin number. |
mux | pin muxing slot selection.
|
static void PORT_SetPinInterruptConfig |
( |
PORT_Type * |
base, |
|
|
uint32_t |
pin, |
|
|
port_interrupt_t |
config |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | PORT peripheral base pointer. |
pin | PORT pin number. |
config | PORT pin interrupt configuration.
- kPORT_InterruptOrDMADisabled: Interrupt/DMA request disabled.
- #kPORT_DMARisingEdge : DMA request on rising edge(if the DMA requests exit).
- #kPORT_DMAFallingEdge: DMA request on falling edge(if the DMA requests exit).
- #kPORT_DMAEitherEdge : DMA request on either edge(if the DMA requests exit).
- #kPORT_FlagRisingEdge : Flag sets on rising edge(if the Flag states exit).
- #kPORT_FlagFallingEdge : Flag sets on falling edge(if the Flag states exit).
- #kPORT_FlagEitherEdge : Flag sets on either edge(if the Flag states exit).
- kPORT_InterruptLogicZero : Interrupt when logic zero.
- kPORT_InterruptRisingEdge : Interrupt on rising edge.
- kPORT_InterruptFallingEdge: Interrupt on falling edge.
- kPORT_InterruptEitherEdge : Interrupt on either edge.
- kPORT_InterruptLogicOne : Interrupt when logic one.
- #kPORT_ActiveHighTriggerOutputEnable : Enable active high-trigger output (if the trigger states exit).
- #kPORT_ActiveLowTriggerOutputEnable : Enable active low-trigger output (if the trigger states exit).
|
static uint32_t PORT_GetPinsInterruptFlags |
( |
PORT_Type * |
base | ) |
|
|
inlinestatic |
If a pin is configured to generate the DMA request, the corresponding flag is cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic one is written to that flag. If configured for a level sensitive interrupt that remains asserted, the flag is set again immediately.
- Parameters
-
base | PORT peripheral base pointer. |
- Returns
- Current port interrupt status flags, for example, 0x00010001 means the pin 0 and 17 have the interrupt.
static void PORT_ClearPinsInterruptFlags |
( |
PORT_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | PORT peripheral base pointer. |
mask | PORT pin number macro. |