esp32用定时器写一个延时函数,运行不成功
#include <stdio.h>
#include "driver/gpio.h"
#include "driver/timer.h"
void time_init()
{
timer_config_t tiConfig = {
.alarm_en = TIMER_ALARM_DIS,
.counter_en = TIMER_PAUSE,
.counter_dir = TIMER_COUNT_DOWN,
.auto_reload = TIMER_AUTORELOAD_EN,
.divider = 80,
};
timer_init(TIMER_GROUP_0, TIMER_0, &tiConfig);
}
void delay(uint64_t t)
{
uint64_t n;
uint64_t *timer_val = &n;
timer_set_counter_value(TIMER_GROUP_0, TIMER_0, t);
timer_start(TIMER_GROUP_0, TIMER_0);
do
{
timer_get_counter_value(TIMER_GROUP_0, TIMER_0, timer_val);
} while (n > 0);
timer_pause(TIMER_GROUP_0, TIMER_0);
}
void app_main(void)
{
time_init();
gpio_set_direction(2, 2);
while (1)
{
gpio_set_level(2, 0);
delay(1000000);
gpio_set_level(2, 1);
delay(1000000);
}
}
不知道错哪了?