初学者一枚%% 2023-11-18 17:15 采纳率: 86.4%
浏览 1
已结题

关于#c语言#的问题,请各位专家解答!

谁能帮我解读下这个函数块?


void rgb_led_demo_func(void *priv)
{
    static u16 mode1_timer = 0;
    static u8 mode1_mode = RGB_MODE_1;
    static u8 timer = 0;
    u8 mode = led.light_mode;
#ifdef T1MS_KEY_EN
    void deal_for_key(void);

    deal_for_key();
#endif
    if(mode == RGB_MODE_OFF)
        return;

    led.timer++;
    if(led.timer > 2000)
    {
        led.timer = 0;
        led.direction++;
        led.direction %= 2;
        if(led.direction == 0)
        {
            led.num++;
            if(led.num > 2)
            {
                led.num = 1;
            }
        }
    }

    switch_color_loop(&led.quan.color[0],CFG_COLOR_SPEED,CFG_COLOR_WAIT_TIME);
    switch_color_loop(&led.quan.color[1],CFG_COLOR_SPEED,CFG_COLOR_WAIT_TIME);
    switch_color_loop(&led.quan.color[2],CFG_COLOR_SPEED,CFG_COLOR_WAIT_TIME);
    led.m_quan.color[0] = led.quan.color[0];
    led.m_quan.color[1] = led.quan.color[1];
    led.m_quan.color[2] = led.quan.color[2];
    led.s_quan.color[0] = led.quan.color[0];
    led.s_quan.color[1] = led.quan.color[1];
    led.s_quan.color[2] = led.quan.color[2];

    if(mode == RGB_MODE_AUTO)
    {
        mode1_timer++;
        if(mode1_timer > 1000*5)
        {
            mode1_timer = 0;
            mode1_mode++;
            if(mode1_mode >= RGB_MODE_MAX)
                mode1_mode = RGB_MODE_1;
        }
        mode = mode1_mode;
    }

    switch(mode)
    {
    #ifdef TEST_EN
        case RGB_MODE_TEST_RED:
        case RGB_MODE_TEST_GREED:
        case RGB_MODE_TEST_BLUE:
        case RGB_MODE_TEST_RED_BLUE:
        case RGB_MODE_TEST_RED_GREEN:
        case RGB_MODE_TEST_GREED_BLUE:
        case RGB_MODE_TEST_GREED_GREED_BLUE:
            set_led_test_mode(    led.cloor_red,led.cloor_green,led.cloor_blue);
            break;
    #endif
        case RGB_MODE_1:
            b_zhu_quan_func();
            m_zhu_quan_func();
            s_zhu_quan_func();
            break;

        case RGB_MODE_2:
            b_zhu_quan_long_func();
            m_zhu_quan_func();
            s_zhu_quan_long_func();
            break;

        case RGB_MODE_3:
            b_quan_func();
            m_quan_func();
            s_quan_func();
            break;

        case RGB_MODE_4:
            b_flash_quan_func();
            m_flash_quan_func();
            s_flash_quan_func();
            break;

        case RGB_MODE_5:
            b_8_func();
            m_8_func();
            s_8_func();
            break;

        case RGB_MODE_6:
            b_quan_3color_func();
            m_quan_3color_func();
            s_quan_3color_func();
            break;
    }
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-18 21:11
    关注

    【相关推荐】



    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7795877
    • 你也可以参考下这篇文章:【程序员的自我修养】[动态图文] 超详解函数栈帧
    • 除此之外, 这篇博客: 对C盘可用空间有些强迫的咋办???(笔者自己电脑操作,蛮看)中的 我就说说我C盘是怎么维持的吧。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      在这里插入图片描述
      我就说说我C盘是怎么维持的吧。
      在这里插入图片描述
      到这,系统设置就行了,当然这是我自己的配置,仅供参考。
      接下来就是注册表了,win键+R,输入regedit,
      在这里插入图片描述
      按下Enter键,确定。
      在这里插入图片描述
      这是中午想搞AppData文件夹时候的页面,刚好瞅见了Desktop桌面文件夹了,我个人是设置放在了D盘,主要是用来放置有时候一些临时要处理的文件,或者是临时安装包这些。关键的是它不会涉及到C盘,嘿嘿。
      讲真,我是不推荐天天在自己电脑上瞎折腾,安装这安装那的,因为就算用一些软件可以很方便的清理注册表、或者缓存垃圾什么的,其实效果不是很好,
      在这里插入图片描述
      其实注册表还是有在的,还有那些空文件夹或者是删除残余。比如:
      在这里插入图片描述
      还有:在这里插入图片描述
      还有我有把默认安装文件夹修改到D盘,这样空间也省出一些
      在这里插入图片描述
      有的朋友可能会发现说怎么Common那三个文件夹没改,讲真我也不知道,那个时候我也没注意,有些人说改了会出问题,咱也没去实验。
      在这里插入图片描述


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 已采纳回答 11月21日
  • 创建了问题 11月18日