美文网首页vsf专辑
hello world: 基于回调函数的闪灯程序

hello world: 基于回调函数的闪灯程序

作者: vsf_simon | 来源:发表于2017-09-03 18:23 被阅读0次

    VSF中很多模块的设计,往往会提供回掉函数的方式来实现模块之间的隔离。定时器模块就有一个vsftimer_create_cb来实现定时调用一个指定函数的功能。

    usrapp.h:

    struct usrapp_t
    {
        bool toggle;
    };
    
    extern struct usrapp_t usrapp;
    void usrapp_srt_init(struct usrapp_t *app);
    

    usrapp.c:

    #include "vsf.h"
    #include "usrapp.h"
    
    struct usrapp_t usrapp;
    
    void usrapp_on_timer1S(void *param)
    {
        struct usrapp_t *app = (struct usrapp_t *)param;
        if (app->toggle)
            vsfhal_gpio_set(0, 1 << 1);
        else
            vsfhal_gpio_clear(0, 1 << 1);
        app->toggle = !app->toggle;
    }
    
    void usrapp_srt_init(struct usrapp_t *app)
    {
        vsfhal_gpio_init(0);
        vsfhal_gpio_config_pin(0, 1, GPIO_OUTPP);
        usrapp_on_timer1S(app);
        vsftimer_create_cb(1000, -1, usrapp_on_timer1S, app);
    }
    

    回调函数在VSF中使用了非常多,甚至还有用回调函数实现的状态机,这个以后再慢慢道来。

    相关文章

      网友评论

        本文标题:hello world: 基于回调函数的闪灯程序

        本文链接:https://www.haomeiwen.com/subject/ybyjjxtx.html