2. Button.c
--------------------------------------------------------------------------------------------------------------------
- #include "Button.h"
- uint16_t DebounceKeyCnt = 0;
- uint8_t KeyValue = 0;
- uint8_t KeyState = 0;
- void Button_Init(void)
- {
- nrf_gpio_pin_dir_set(Button_GPIO_Pin,NRF_GPIO_PIN_DIR_INPUT); //configurate pin direction to input
- nrf_gpio_cfg_input(Button_GPIO_Pin, NRF_GPIO_PIN_PULLUP); //pull-up
- }
- uint8_t KeyScan(void)
- {
- KeyValue = nrf_gpio_pin_read(Button_GPIO_Pin);
- #ifdef high_active
- KeyValue = KeyValue; //active high
- #endif
- #ifdef low_active
- KeyValue = !(KeyValue); //active low
- #endif
- if(KeyValue >= 1)
- {
- DebounceKeyCnt++;
- if(DebounceKeyCnt >= 5)
- {
- DebounceKeyCnt = 0;
- KeyState = 1;
- }
- }
- else
- {
- DebounceKeyCnt = 0;
- KeyState = 0;
- }
- return(KeyState);
- }
3. Button.h
---------------------------------------------------------------------------------------------------------------------
- #include "nrf_drv_gpiote.h"
- #define Button_GPIO_Pin 25
- #if 0
- #define high_active
- #else
- #define low_active
- #endif
- void Button_Init(void);
- uint8_t KeyScan(void);
沒有留言:
張貼留言