#include "wdt.h"

void wdt_led_init(void)
{
    gpio_init_typedef gpio_init_structure;

    gpio_init_structure.gpio_pin = GPIO_PIN_0;
    gpio_init_structure.gpio_dir = GPIO_DIR_OUTPUT;
    gpio_init_structure.gpio_fen = GPIO_FEN_GPIO;
    gpio_init_structure.gpio_mode = GPIO_MODE_DIGITAL;
    gpio_init_structure.gpio_drv = GPIO_DRV_8MA;

    gpio_init(GPIOE_REG, &gpio_init_structure);
}

void wdt_key_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 wdt_test_init(void)
{
    wdt_cmd(DISABLE);
    wdt_time_select(WDT_TIME_4096MS);
    wdt_reset_cmd(ENABLE);
    wdt_cmd(ENABLE);
    printf("\n wdt running... \n");
}

u8 cnt = 0;
void wdt_run(void)
{
    if (gpio_read_bit(GPIOB_REG, GPIO_PIN_5) == RESET) {
        delay_ms(50);
        if (gpio_read_bit(GPIOB_REG, GPIO_PIN_5) == RESET) {
            printf("wdt clear\n");
            wdt_clear();
        }
    }
    if(cnt == 10) {
        cnt = 0;
        gpio_toggle_bits(GPIOE_REG, GPIO_PIN_0);
    }
    cnt++;
    delay_ms(50);
}
