1.可以自由定义状态,让程序按状态机方式运行
2.可以在状态机内定时,延时运行
3.状态机的写法是:
可以按阻塞方式写,但是运行在非阻塞的方式
也就是模仿了定时内核的概念
常用于长时间延时,中断也可以使用状态机来编码解码数据
应用例子:
1.在定时器中调用 fsm_timer_poll
2.在main中调用 idle_poll
3.在test.c中编写测试代码,如下:
#include "fsm.h"
FSM_TIMER(test)
IDLE_FUNCTION(test)
{
Start()
{
goto kk;
}
State(kk) //状态默认是内部自循环的
{
ld_gpio_set(1,!ld_gpio_get(1));
waitms(50);
}
Default(){}
}
fsm.h 内容如下:
#ifndef __FSM_H__
#define __FSM_H__
/*===================================================