降低耳机灯的亮度

如果有客户反馈灯光亮度太亮,可以通过修改元器件,使用低亮的灯来实现;或者是软件使用上拉电阻的形式降低亮度,具体实现如下:

首先定义函数,在bsp_sys.c文件最上面定义:

static u8 blue_led_sta = 0, red_led_sta = 0;//灯光亮灭标志位
void led_cfg_set_on_ex(gpio_t *g)//控制灯光亮标志位函数处理
{
	if(g->num == 3){            //PB3
		blue_led_sta = 1;
	}
	if(g->num == 7){            //PA7
		red_led_sta = 1;
	}
}
void led_cfg_set_off_ex(gpio_t *g)//控制灯光灭标志位函数处理
{
	if(g->num == 3){            //PB3
		blue_led_sta = 0;
	}
	if(g->num == 7){            //PA7
		red_led_sta = 0;
	}
}
void timer_ms_led(void)//控制灯光亮灭及亮度处理函数
{
	static u8 timer_ms_cnt = 0;
	timer_ms_cnt++;
	if(blue_led_sta && (timer_ms_cnt%0x03 == 0x00))
	{
		GPIOBDE    |= BIT(3);
		GPIOBPU300 |= BIT(3);
	}
	else
	{
		GPIOBDE    &= ~BIT(3);
		GPIOBPU300 &= ~BIT(3);
	}
	if(red_led_sta && (timer_ms_cnt%0x03 == 0x00))
	{
		GPIOADE    |= BIT(7);
		GPIOAPU300 |= BIT(7);
	}
	else
	{
		GPIOADE    &= ~BIT(7);
		GPIOAPU300 &= ~BIT(7);
	}
}

之后就是IO口初始化及打开中断,在中断中进行开/关上拉处理:
bsp_sys.c下bsp_sys_init()中:

//修改灯口配置
	bled_func.set_on = led_cfg_set_on_ex;
	bled_func.set_off = led_cfg_set_off_ex;
	rled_func.set_on = led_cfg_set_on_ex;
	rled_func.set_off = led_cfg_set_off_ex;
	GPIOBDIR |= BIT(3);    //IO
	GPIOADIR |= BIT(7);
//插入充电后要开中断,处理灯光配置
	if(CHARGE_DC_IN())
	{//控制充电红灯变暗,中断要在前面
	   /// enable user timer for display & dac
		user_tmr_set_enable(1, 1);
		led_init();
		key_init();
		plugin_init();
	}
	else//正常情况下开机之后,再开中断
	{
		led_init();
		key_init();
		plugin_init();
		/// enable user timer for display & dac
		user_tmr_set_enable(1, 1);
	}

最后就是在中断中调用处理:
bsp_sys.c下usr_tmr5ms_isr()中

	timer_ms_led();
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值