C 状态机 无操作系统下的延时 简单调度

本文介绍了如何使用C语言构建一个状态机,实现无操作系统环境下的延时和简单调度。状态机允许程序按状态进行,支持定时和非阻塞运行,模拟定时内核的概念,适用于长时间延时和中断中的数据编码解码。应用示例包括在定时器、main函数和测试代码中的使用。
摘要由CSDN通过智能技术生成

          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__

/*===================================================
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值