RTEMS 6.1-rc1
Data Structures | Enumerator | Variables
Kpp

Data Structures

struct  _kpp_config
 Lists of KPP status. More...
 

Variables

uint8_t _kpp_config::activeRow
 
uint8_t _kpp_config::activeColumn
 
uint16_t _kpp_config::interrupt
 

Driver version

enum  _kpp_interrupt_enable { kKPP_keyDepressInterrupt = KPP_KPSR_KDIE_MASK , kKPP_keyReleaseInterrupt = KPP_KPSR_KRIE_MASK }
 List of interrupts supported by the peripheral. This enumeration uses one-bot encoding to allow a logical OR of multiple members. Members usually map to interrupt enable bits in one or more peripheral registers. More...
 
enum  _kpp_sync_operation { kKPP_ClearKeyDepressSyncChain = KPP_KPSR_KDSC_MASK , kKPP_SetKeyReleasesSyncChain = KPP_KPSR_KRSS_MASK }
 Lists of KPP synchronize chain operation. More...
 
typedef enum _kpp_interrupt_enable kpp_interrupt_enable_t
 List of interrupts supported by the peripheral. This enumeration uses one-bot encoding to allow a logical OR of multiple members. Members usually map to interrupt enable bits in one or more peripheral registers.
 
typedef enum _kpp_sync_operation kpp_sync_operation_t
 Lists of KPP synchronize chain operation.
 
typedef struct _kpp_config kpp_config_t
 Lists of KPP status.
 
#define FSL_KPP_DRIVER_VERSION   (MAKE_VERSION(2, 0, 0))
 KPP driver version 2.0.0.
 
#define KPP_KEYPAD_COLUMNNUM_MAX   (8U)
 
#define KPP_KEYPAD_ROWNUM_MAX   (8U)
 

Initialization and De-initialization

void KPP_Init (KPP_Type *base, kpp_config_t *configure)
 KPP initialize. This function ungates the KPP clock and initializes KPP. This function must be called before calling any other KPP driver functions. More...
 
void KPP_Deinit (KPP_Type *base)
 Deinitializes the KPP module and gates the clock. This function gates the KPP clock. As a result, the KPP module doesn't work after calling this function. More...
 

KPP Basic Operation

void KPP_keyPressScanning (KPP_Type *base, uint8_t *data, uint32_t clockSrc_Hz)
 Keypad press scanning. More...
 

Detailed Description

Enumeration Type Documentation

◆ _kpp_interrupt_enable

List of interrupts supported by the peripheral. This enumeration uses one-bot encoding to allow a logical OR of multiple members. Members usually map to interrupt enable bits in one or more peripheral registers.

Enumerator
kKPP_keyDepressInterrupt 

Keypad depress interrupt source

kKPP_keyReleaseInterrupt 

Keypad release interrupt source

◆ _kpp_sync_operation

Lists of KPP synchronize chain operation.

Enumerator
kKPP_ClearKeyDepressSyncChain 

Keypad depress interrupt status.

kKPP_SetKeyReleasesSyncChain 

Keypad release interrupt status.

Function Documentation

◆ KPP_Deinit()

void KPP_Deinit ( KPP_Type base)

Deinitializes the KPP module and gates the clock. This function gates the KPP clock. As a result, the KPP module doesn't work after calling this function.

Parameters
baseKPP peripheral base address.

brief Deinitializes the KPP module and gates the clock. This function gates the KPP clock. As a result, the KPP module doesn't work after calling this function.

param base KPP peripheral base address.

◆ KPP_Init()

void KPP_Init ( KPP_Type base,
kpp_config_t configure 
)

KPP initialize. This function ungates the KPP clock and initializes KPP. This function must be called before calling any other KPP driver functions.

Parameters
baseKPP peripheral base address.
configureThe KPP configuration structure pointer.

brief KPP initialize. This function ungates the KPP clock and initializes KPP. This function must be called before calling any other KPP driver functions.

param base KPP peripheral base address. param configure The KPP configuration structure pointer.

◆ KPP_keyPressScanning()

void KPP_keyPressScanning ( KPP_Type base,
uint8_t *  data,
uint32_t  clockSrc_Hz 
)

Keypad press scanning.

This function will scanning all columns and rows. so all scanning data will be stored in the data pointer.

Parameters
baseKPP peripheral base address.
dataKPP key press scanning data. The data buffer should be prepared with length at least equal to KPP_KEYPAD_COLUMNNUM_MAX * KPP_KEYPAD_ROWNUM_MAX. the data pointer is recommended to be a array like uint8_t data[KPP_KEYPAD_COLUMNNUM_MAX]. for example the data[2] = 4, that means in column 1 row 2 has a key press event.
clockSrc_HzSource clock.

brief Keypad press scanning.

This function will scanning all columns and rows. so all scanning data will be stored in the data pointer.

param base KPP peripheral base address. param data KPP key press scanning data. The data buffer should be prepared with length at least equal to KPP_KEYPAD_COLUMNNUM_MAX * KPP_KEYPAD_ROWNUM_MAX. the data pointer is recommended to be a array like uint8_t data[KPP_KEYPAD_COLUMNNUM_MAX]. for example the data[2] = 4, that means in column 1 row 2 has a key press event. param clockSrc_Hz Source clock.

Variable Documentation

◆ activeColumn

uint8_t _kpp_config::activeColumn

The column number: bit 7 ~ 0 represents the column 7 ~ 0.

◆ activeRow

uint8_t _kpp_config::activeRow

The row number: bit 7 ~ 0 represents the row 7 ~ 0.

◆ interrupt

uint16_t _kpp_config::interrupt

KPP interrupt source. A logical OR of "kpp_interrupt_enable_t".