泰凌微8258学习日记-2:用按钮控制RGB改变小灯的颜色

        通过RGB的不同搭配可以得到不同的颜色,常用的七种颜色,红橙黄绿青蓝紫靛等等都可以由RGB配比得出,如果大家想了解更多可以去这里查看,那位帅气博主已经列出来了。😄(●'◡'●)https://blog.csdn.net/xiaoting451292510/article/details/8226325

        在官方给的SDK中,已经给出了RGB的定义以及使用函数了,大家在使用的时候直接调用就好了,非常简单。下面就是官方给的代码,大家可以尝试理解PWM的作用、占空比等以后再尝试调用。

void light_adjust_R(u8 val, u8 lum){
    pwm_set_lum (PWMID_R, get_pwm_cmp(val, lum), PWM_INV_R);
}

void light_adjust_G(u8 val, u8 lum){
    pwm_set_lum (PWMID_G, get_pwm_cmp(val, lum), PWM_INV_G);
}

void light_adjust_B(u8 val, u8 lum){
    pwm_set_lum (PWMID_B, get_pwm_cmp(val, lum), PWM_INV_B);
}
void light_adjust_RGB_hw(u8 val_R, u8 val_G, u8 val_B, u8 lum){
	light_adjust_R(val_R, lum);
	light_adjust_G(val_G, lum);
	light_adjust_B(val_B, lum);
}

void light_adjust_RGB(u8 val_R, u8 val_G, u8 val_B, u8 lum){
    #if LIGHT_ADJUST_STEP_EN
    light_onoff_step_init();
    #endif

	light_adjust_RGB_hw(val_R, val_G, val_B, lum);
}

         我自己设定的就是初始是白,然后每次按下按钮颜色都会改变,顺序如下:红-橙-黄-绿-青-蓝-紫-靛-关-开。其中lum是亮度,大家可以根据自己的需要自己设定。代码如下:

void colorful(u32 lum)
{

   static u32 i=0;
    gpio_write(LED_ON_OFF_Pin,1);//小灯初始化亮
	if(gpio_read(KEY_ON_OFF_Pin)==0)
		{
			sleep_us(500000);
			i++;
			 if(i==1)
			{
				light_adjust_RGB(255,0,0,lum);//红
			}
		 	else if(i==2)
			{
			  	light_adjust_RGB(255,97,0,lum);//橙
			}
			else if(i==3)
			{
				light_adjust_RGB(255,255,0,lum);//黄
			}
			else if(i==4)
			{
				light_adjust_RGB(0,255,0,lum);//绿
			}
			else if(i==5)
			{
				light_adjust_RGB(0,255,255,lum);//青
			}
			else if(i==6)
			{
				light_adjust_RGB(0,0,255,lum);//蓝
			}
			else if(i==7)
			{
				light_adjust_RGB(160,32,240,lum);//紫
			 }
			 else if(i==8)
			 {
				 light_adjust_RGB(8,64,84,lum);//靛
			 }
			 else if(i==9)
			 {
				 light_adjust_RGB(0,0,0,lum);//关灯

			 }
			 if(i==10)
			 {
			 	 gpio_write(LED_ON_OFF_Pin,1);
			 	 light_adjust_RGB(255,255,255,lum);//开灯
			 	 i=0;                               //标志位置零
			}
		}

 }

 好了,下期再见!ヾ(•ω•`)o88

 

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值