找回密码
 立即注册
查看: 40|回复: 2

用5msTime扫8个LED,视觉上不能常量

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-06-26 14:03:27
已绑定手机

4

主题

9

回帖

84

积分

注册会员

积分
84
发表于 4 天前 | 显示全部楼层 |阅读模式
平台STC8H1K08,效果上8个在亮,为了降低功耗,用5ms 去轮流点亮每个LED,闪烁的厉害,视觉上感觉不到全部同时在亮,能否有其它中断扫描可以做到不闪烁?
代码如下:

void TM0_Isr(void) interrupt 1
{//T = 5ms
        WDT_Clean();


        if(AllFlag.Flag.ADC_Change_Stop_Flag)
        {
                if(ADCChargeTime < 250)
                        ADCChargeTime++;
        }
                CloseAllLED();
                ++ LED_i;
    if(LED_i >= 8)
    {
        LED_i = 0;
  }       
    switch(LED_i)
    {
        case 0:if(LED_light_Flag & Light_LED1){ LED1 = 0;}break;
        case 1:if(LED_light_Flag & Light_LED2){ LED2 = 0;}break;
        case 2:if(LED_light_Flag & Light_LED3){ LED3 = 0;} break;
        case 3:if(LED_light_Flag & Light_LED4){ LED4 = 0;} break;
        case 4:if(LED_light_Flag & Light_LED5){ LED5 = 0;} break;
        case 5:if(LED_light_Flag & Light_LED6){ LED6 = 0;} break;
        case 6:if(LED_light_Flag & Light_LED7){ LED7 = 0;} break;
        case 7:if(LED_light_Flag & Light_LED8){ LED8 = 0;} break;
    }       
                       
       

}

米高
回复

使用道具 举报 送花

3

主题

540

回帖

-209

积分

等待验证会员

积分
-209
发表于 4 天前 | 显示全部楼层
在保持视觉效果同时降低功耗方面,可以考虑以下方法:

1. 分批次点亮LED  
在中断扫描完成后,将LEDi的值分组,按顺序点亮每个LED。例如,按顺序点亮LED1、LED2、LED3等,每次点亮一个LED,避免所有LED同时亮起。这样可以减少闪烁次数,同时保持视觉效果。

2. 调整中断时机  
在中断发生时,根据LEDi的值,每隔一定时间点亮一个LED,而不是同时点亮所有。例如,每隔5ms点亮一个LED,这样可以减少闪烁频率,同时保持视觉效果。

3. 使用中断扫描的分批次处理  
将中断的处理逻辑重新设计,分批次点亮LED。例如,按顺序点亮LED1、LED2、LED3等,每次点亮一个LED,避免所有LED同时亮起。这样可以减少闪烁次数,同时保持视觉效果。

4. 利用灯的物理特性  
调整灯的电源和控制电路,减少同时点亮的可能性。例如,使用不同的控制信号,或通过一些其他的中断方式,来分批点亮LED。

通过以上方法,可以实现视觉效果同时降低功耗。具体实现需要根据灯的物理特性进行调整,或者根据应用需求重新设计中断处理逻辑。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 4 天前 | 显示全部楼层
频率25Hz,不够,提高到50Hz或以上
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-28 17:41 , Processed in 0.149589 second(s), 56 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表