XFusion API
v1.3.0
载入中...
搜索中...
未找到
xf_main.c
浏览该文件的文档.
1
17
/* ==================== [Includes] ========================================== */
18
19
#include "xf_hal.h"
20
#include "xf_task.h"
21
22
/* ==================== [Defines] =========================================== */
23
24
#define OUTPUT_IO 5
25
#define INTERRUPT_INPUT_IO 0
26
#define INPUT_IO_MODE XF_HAL_GPIO_PULL_UP
27
#define INPUT_IO_TRIGGER_TYPE XF_HAL_GPIO_INTR_TYPE_ANY
28
29
#define TASK_PRIORITY 5
30
#define TASK_DELAY_MS 500
31
32
#define TAG "intrrupt"
33
34
/* ==================== [Typedefs] ========================================== */
35
36
/* ==================== [Static Prototypes] ================================= */
37
38
static
void
xf_hal_gpio_irq_cb
(
xf_gpio_num_t
gpio_num,
bool
level,
void
*user_data);
39
static
void
gpio_task
(
xf_task_t
task
);
40
41
/* ==================== [Static Variables] ================================== */
42
43
/* ==================== [Macros] ============================================ */
44
45
/* ==================== [Global Functions] ================================== */
46
47
void
xf_main
(
void
)
48
{
49
xf_hal_gpio_init
(
OUTPUT_IO
,
XF_HAL_GPIO_DIR_OUT
);
50
51
xf_hal_gpio_init
(
INTERRUPT_INPUT_IO
,
XF_HAL_GPIO_DIR_IN
);
52
xf_hal_gpio_set_pull
(
INTERRUPT_INPUT_IO
,
INPUT_IO_MODE
);
53
xf_hal_gpio_set_intr_type
(
INTERRUPT_INPUT_IO
,
INPUT_IO_TRIGGER_TYPE
);
54
xf_hal_gpio_set_intr_cb
(
INTERRUPT_INPUT_IO
,
xf_hal_gpio_irq_cb
, NULL);
55
56
xf_hal_gpio_set_intr_enable
(
INTERRUPT_INPUT_IO
);
57
58
xf_ttask_create_loop
(
gpio_task
, NULL,
TASK_PRIORITY
,
TASK_DELAY_MS
);
59
}
60
61
/* ==================== [Static Functions] ================================== */
62
63
static
void
xf_hal_gpio_irq_cb
(
xf_gpio_num_t
gpio_num,
bool
level,
void
*user_data)
64
{
65
XF_LOGI
(
TAG
,
"gpio:%d"
, level);
66
}
67
68
static
void
gpio_task
(
xf_task_t
task
)
69
{
70
static
bool
level = 0;
71
level = !level;
72
xf_hal_gpio_set_level
(
OUTPUT_IO
, level);
73
}
xf_main
void xf_main(void)
Definition
xf_main.c:28
xf_hal_gpio_set_pull
xf_err_t xf_hal_gpio_set_pull(xf_gpio_num_t gpio_num, xf_hal_gpio_pull_t pull)
gpio 设置上下拉模式。
Definition
xf_hal_gpio.c:115
xf_hal_gpio_set_level
xf_err_t xf_hal_gpio_set_level(xf_gpio_num_t gpio_num, bool level)
设置 gpio 设置电平高低。
Definition
xf_hal_gpio.c:292
xf_hal_gpio_set_intr_type
xf_err_t xf_hal_gpio_set_intr_type(xf_gpio_num_t gpio_num, xf_hal_gpio_intr_type_t intr_type)
设置 gpio 中断类型。
Definition
xf_hal_gpio.c:217
xf_gpio_num_t
uint32_t xf_gpio_num_t
gpio 序号。
Definition
xf_hal_gpio.h:44
xf_hal_gpio_set_intr_enable
xf_err_t xf_hal_gpio_set_intr_enable(xf_gpio_num_t gpio_num)
设置 gpio 启用中断。
Definition
xf_hal_gpio.c:242
xf_hal_gpio_set_intr_cb
xf_err_t xf_hal_gpio_set_intr_cb(xf_gpio_num_t gpio_num, xf_hal_gpio_irq_cb_t callback, void *user_data)
gpio 设置中断回调。
Definition
xf_hal_gpio.c:165
xf_hal_gpio_init
xf_err_t xf_hal_gpio_init(xf_gpio_num_t gpio_num, xf_hal_gpio_dir_t direction)
gpio 初始化函数。使用 gpio 之前必须要进行初始化。
Definition
xf_hal_gpio.c:50
XF_HAL_GPIO_DIR_IN
@ XF_HAL_GPIO_DIR_IN
Definition
xf_hal_gpio.h:79
XF_HAL_GPIO_DIR_OUT
@ XF_HAL_GPIO_DIR_OUT
Definition
xf_hal_gpio.h:80
xf_ttask_create_loop
static xf_task_t xf_ttask_create_loop(xf_task_func_t func, void *func_arg, uint16_t priority, uint32_t delay_ms)
在默认的任务管理下,创建 ttask 循环任务。
Definition
xf_task.h:162
TAG
#define TAG
Definition
xf_main.c:24
TASK_DELAY_MS
#define TASK_DELAY_MS
Definition
xf_main.c:27
TASK_PRIORITY
#define TASK_PRIORITY
Definition
xf_main.c:26
INPUT_IO_MODE
#define INPUT_IO_MODE
Definition
xf_main.c:29
OUTPUT_IO
#define OUTPUT_IO
Definition
xf_main.c:27
gpio_task
static void gpio_task(xf_task_t task)
Definition
xf_main.c:58
INTERRUPT_INPUT_IO
#define INTERRUPT_INPUT_IO
Definition
xf_main.c:25
INPUT_IO_TRIGGER_TYPE
#define INPUT_IO_TRIGGER_TYPE
Definition
xf_main.c:27
xf_hal_gpio_irq_cb
static void xf_hal_gpio_irq_cb(xf_gpio_num_t gpio_num, bool level, void *user_data)
Definition
xf_main.c:63
task
static void task(xf_task_t task)
Definition
xf_main.c:45
XF_LOGI
#define XF_LOGI(tag, format,...)
Definition
xf_log_uitls.h:44
xf_task_t
void * xf_task_t
任务句柄。
Definition
xf_task_manager.h:40
examples
peripherals
gpio
interrupt
main
xf_main.c
生成于 2025年 一月 21日 星期二 17:25:09 , 为 XFusion API使用
1.9.8