c代码封装

    嵌入式下的代码写多了,有时候会觉得是写重复的代码,比如点灯,蓝灯按照一定频率亮,红灯按照一定频率亮。虽然简单,但是按照以前的写法,要写很多flag,什么redflag,blueflag的,flag写多了也累还容易出现找不到flag写哪去。

    最重要是的我不想写flag,我就点个灯,干嘛要写一堆flag?

    所以看到嵌入式下的c设计模式中观察者模式,发现这种模式适合处理这样的写flag过程,重要的是过程提炼成函数

    最终我写出来代码就是这样

 LedControl_alwaysis_k(&BLUE_LED_cs,500,500,1,'k');500,500ms亮和灭

,一直交替闪烁,一句话就将我要的效果实现了。

    

void LedRun(LED_CONTROL* base,unsigned int interupt_freqms)//函数放在中断里,interupt_freqms是中断间隔时间

    void LED_CREATE(LED_CONTROL* base,void (*LIGHT_LED)(void),void (*UNLIGHT_LED)(void)){传入灯亮灭函数指针

typedef struct LED_CONTROL{
    unsigned char led_canuse;
    unsigned short led_lightms_u16;
    unsigned short led_unlightms_u16;
    short led_rounte_count_16;
    unsigned char led_always_do;
    unsigned char led_busy_sta;
    void (*LIGHT_LED)(void);
    void (*UNLIGHT_LED)(void);
    int templight_32;
    int tempunlight_32;

}LED_CONTROL;

为了方便使用,懒得写flag,哈哈

猜你喜欢

转载自blog.csdn.net/qq_16711745/article/details/80305845