#include "gpio_input_key.h"

void gpio_input_init(void)
{
    gpio_init_typedef gpio_init_structure;

    gpio_init_structure.gpio_pin = GPIO_PIN_5;
    gpio_init_structure.gpio_dir = GPIO_DIR_INPUT;
    gpio_init_structure.gpio_fen = GPIO_FEN_GPIO;
    gpio_init_structure.gpio_mode = GPIO_MODE_DIGITAL;
    gpio_init_structure.gpio_pupd = GPIO_PUPD_UP;

    gpio_init(GPIOB_REG, &gpio_init_structure);
}

void gpio_input_key_example(void)
{
    static u32 delay_cnt;

    if (tick_check_expire(delay_cnt, 40)) {
        if (gpio_read_bit(GPIOB_REG, GPIO_PIN_5) == SET) {
            printf("key is up\n");
        } else if (gpio_read_bit(GPIOB_REG, GPIO_PIN_5) == RESET) {
            printf("key is down\n");
        }
        delay_cnt = tick_get();
    }
}
