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);
沒有留言:
張貼留言