Arduino for Esp8266 基础篇之Ticker

Arduino for Esp8266 基础篇之Ticker

前言:Arduino for esp8266属于无操作系统环境,对于开发多任务的复杂应用还是比较麻烦的,所以这里就提供了一个近似于操作系统调度器的功能Ticker类;Ticker的功能非常简单,就是规定时间后调用函数,总体上,根据功能可以把方法分为两大类:1 定时器管理方法;2 定时器启用方法;

1 定时器管理方法:

void Ticker::detach()  //停止定时器
{
   
    if (!_timer)
        return;
    os_timer_disarm(_timer); //关闭软件定时器
    _timer = nullptr; // 定时器指针为nullptr;
    _callback_function = nullptr; // 回调函数指针为nullptr; 
}
bool Ticker::active() const   //  定时器是否工作状态
{
   
    return _timer;
}

2定时器启用方法:

void Ticker::once(float seconds, callback_function_t callback); xx秒后只执行一次
其中入口参数:seconds—秒数 ;callback—回调函数;
void Ticker::once(float seconds, void (*callback)(TArg), TArg arg); xx秒后只执行一次
其中入口参数:seconds—秒数 ;callback—回调函数;arg—回调函数参数;
void Ticker::once_ms(uint32_t milliseconds, callback_function_t callback) ;xx毫秒后只执行一次
其中入口参数:milliseconds—毫秒数 ;callback—回调函数;
void Ticker::once_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg) xx毫秒后只执行一次
其中入口参数:milliseconds—毫秒数 ;callback—回调函数;arg—回调函数参数;
void Ticker::attach(float seconds, callback_function_t callback); 每隔xx秒周期性执行
其中入口参数:seconds—秒数 ;callback—回调函数;
void Ticker::attach(float seconds, void (*callback)(TArg), TArg arg) 每隔xx秒周期性执行
其中入口参数:seconds—秒数 ;callback—回调函数;arg—回调函数参数;
void Ticker::attach_ms_scheduled(uint32_t milliseconds, callback_function_t callback) ;每隔xx毫秒周期性执行
其中入口参数:milliseconds—毫秒数 ;callback—回调函数;
void Ticker::attach_ms(uint32_t milliseconds, void (*callback)(TArg), TArg arg);每隔xx毫秒周期性执行
其中入口参数:milliseconds—毫秒数 ;callback—回调函数;arg—回调函数参数;
核心函数:

// 入口参数:milliseconds:毫秒数 ;repeat:是否重复(周期性);callback:回调函数;arg:回调函数参数
void Ticker::_attach_ms(uint32_t milliseconds, bool repeat, callback_with_arg_t callback, void* arg)
{
   
    if (_timer)
    {
   
        os_timer_disarm(_timer);//关闭软件定时器
    }
    else
    {
   
        _timer = &_etsTimer; 
    }

    os_timer_setfn(_timer, callback
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值