Mbed OS 文档翻译 之 参考(API(RTOS(Event)))

Event

Event 类提供 API 来配置事件延迟和周期时间。您可以使用 post API 将事件发布到基础 EventQueue,您可以使用 cancel 取消最近发布的事件。

Event 类是线程安全的。post 和 cancel API 是 IRQ 安全的。

Event 类参考

Event.h

EventQueue 示例:将事件发布到队列

下面的代码演示了如何实例化,配置和发布事件。

main.cpp                                                                                                                                               导入到 Mbed IDE

#include "mbed.h"
// Creates an event bound to the specified event queue
EventQueue queue;
void handler(int count);
Event<void(int)> event(&queue, handler);

void handler(int count) {
    printf("Event = %d \n", count);
    return;
}

void post_events(void) {

    // Events can be posted multiple times and enqueue gracefully until
    // the dispatch function is called.
    event.post(1);
    event.post(2);
    event.post(3);    
}

int main() {

    Thread event_thread;
        
    // The event can be manually configured for special timing requirements
    // specified in milliseconds
    event.delay(100);       // Starting delay - 100 msec
    event.period(200);      // Delay between each evet - 200msec
    
    event_thread.start(callback(post_events));
    
    // Posted events are dispatched in the context of the queue's
    // dispatch function
    queue.dispatch(400);        // Dispatch time - 400msec
    // 400 msec - Only 2 set of events will be dispatched as period is 200 msec
    
    event_thread.join();
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值