#ifndef __KEY_H #define __KEY_H #ifdef __cplusplus extern "C" { #endif #ifdef __KEY_H_GLOBAL #define __KEY_H_EXTERN #else #define __KEY_H_EXTERN extern #endif /************************************************************************************************ * Version * ************************************************************************************************/ /************************************************************************************************ * How to use * ************************************************************************************************/ /************************************************************************************************ * Enable config * ************************************************************************************************/ /************************************************************************************************ * Includes * ************************************************************************************************/ #include /************************************************************************************************ * Defines * ************************************************************************************************/ /************************************************************************************************ * Typedefs * ************************************************************************************************/ typedef union { struct { uint8_t key_up_state_flag : 1; uint8_t key0_state_flag : 1; uint8_t key1_state_flag : 1; uint8_t key2_state_flag : 1; } bits; uint8_t key_all_state; } key_state_t; typedef struct { key_state_t key_state; uint8_t i; } key_button_t; extern key_button_t key_button; /************************************************************************************************ * Interfaces * ************************************************************************************************/ void key_button_init(void); void key_button_task(void); #ifdef __cplusplus }; #endif #endif // __KEY_H