Parcourir la source

争对试产板批量烧录问题进行修改更新 同时修改了律动模式下访问空指针,除0等部分代码。更新版本V1.0.5

liuhao il y a 3 ans
Parent
commit
c2f38f08a5

+ 30 - 7
YC11xx_SmartLight/Librarier/sc_user/u_effect_normal.c

@@ -53,7 +53,7 @@ void light_mode_gradual_timer_cb(LightInfo_t *gradual)
 //	float green_cnt=0; 
 //	float blue_cnt=0; 
 	static uint8_t index = 0;
-
+		uint8_t temp_cnt = 0;
 	if(gradual->change_cnt)
 	{
 		gradual->change_cnt--;
@@ -142,14 +142,33 @@ void light_mode_gradual_timer_cb(LightInfo_t *gradual)
 	}
 	else
 	{
-		gradual->curr_ind   = ++gradual->curr_ind % gradual->clr_num_max;
+//		gradual->curr_ind   = ++gradual->curr_ind % gradual->clr_num_max;
+//		index = (gradual->curr_ind + 1) % gradual->clr_num_max;
+//		gradual->change_cnt = gradual->set_speed * 18;
+//		
+//		red_cnt   = u_fabs(gradual->clr_buff[index][0] , gradual->clr_buff[gradual->curr_ind][0]) * 10 / gradual->change_cnt;
+//		green_cnt = u_fabs(gradual->clr_buff[index][1] , gradual->clr_buff[gradual->curr_ind][1]) * 10 / gradual->change_cnt;
+//		blue_cnt  = u_fabs(gradual->clr_buff[index][2] , gradual->clr_buff[gradual->curr_ind][2]) * 10 / gradual->change_cnt;
+//		//U_UART_PRINTF("change_cnt = %d sp = %d, cnt: %d, %d, %d\n",gradual->change_cnt, gradual->set_speed, red_cnt, green_cnt, blue_cnt);
+//		gradual->clr_temp[0] = gradual->clr_buff[gradual->curr_ind][0] * 10;
+//		gradual->clr_temp[1] = gradual->clr_buff[gradual->curr_ind][1] * 10;
+//		gradual->clr_temp[2] = gradual->clr_buff[gradual->curr_ind][2] * 10;
+		
+		temp_cnt= ++gradual->curr_ind ;
+		gradual->curr_ind   =temp_cnt % gradual->clr_num_max;
 		index = (gradual->curr_ind + 1) % gradual->clr_num_max;
 		gradual->change_cnt = gradual->set_speed * 18;
-		
-		red_cnt   = u_fabs(gradual->clr_buff[index][0] , gradual->clr_buff[gradual->curr_ind][0]) * 10 / gradual->change_cnt;
-		green_cnt = u_fabs(gradual->clr_buff[index][1] , gradual->clr_buff[gradual->curr_ind][1]) * 10 / gradual->change_cnt;
-		blue_cnt  = u_fabs(gradual->clr_buff[index][2] , gradual->clr_buff[gradual->curr_ind][2]) * 10 / gradual->change_cnt;
-		//U_UART_PRINTF("change_cnt = %d sp = %d, cnt: %d, %d, %d\n",gradual->change_cnt, gradual->set_speed, red_cnt, green_cnt, blue_cnt);
+    if(gradual->change_cnt!=0) //这里非0才运算 不然会异常死机 不能做除0运算 20211011刘浩改
+    {
+                red_cnt   = (u_fabs(gradual->clr_buff[index][0] , gradual->clr_buff[gradual->curr_ind][0]) * 10) / gradual->change_cnt;
+                green_cnt = u_fabs(gradual->clr_buff[index][1] , gradual->clr_buff[gradual->curr_ind][1]) * 10 / gradual->change_cnt;
+                blue_cnt  = u_fabs(gradual->clr_buff[index][2] , gradual->clr_buff[gradual->curr_ind][2]) * 10 / gradual->change_cnt;
+    }else
+    {
+             red_cnt=0;
+             green_cnt=0;
+             blue_cnt=0;
+    }
 		gradual->clr_temp[0] = gradual->clr_buff[gradual->curr_ind][0] * 10;
 		gradual->clr_temp[1] = gradual->clr_buff[gradual->curr_ind][1] * 10;
 		gradual->clr_temp[2] = gradual->clr_buff[gradual->curr_ind][2] * 10;
@@ -830,6 +849,8 @@ void light_rhythm_mode_gradual_cfg(RhythmPara_t *gradual_rhythm_cfg, const uint3
 		gradual_rhythm_cfg->clr_max_num 	= color_num;
 		gradual_rhythm_cfg->bright			= 100;
 		gradual_rhythm_cfg->speed			= 5;
+		gradual_rhythm_cfg->clr_buff=app_static_clr;
+		//gradual_rhythm_cfg->clr_buff 被上面memset清零后内存地址指向了0 防止后面程序调用gradual_rhythm_cfg->clr_buff[0]访问空指针导致异常添加一个静态初值app_static_clr  防止异常死机 2021/11/13 LH加
 		
 		if (gradual_rhythm_cfg->clr_max_num > GRADUAL_COLOR_NUM_MAX)
 		{
@@ -847,7 +868,9 @@ void light_rhythm_mode_gradual_cfg(RhythmPara_t *gradual_rhythm_cfg, const uint3
 		gradual_rhythm_cfg->grad_first = 0;
 				
 		light_rhythm_mode_gradual_timer_cb(gradual_rhythm_cfg);
+		
 		light_set_color( light_color_bright_create( (gradual_rhythm_cfg->clr_buff[0]) << 16 | (gradual_rhythm_cfg->clr_buff[0]) << 8 | (gradual_rhythm_cfg->clr_buff[0]) , LIGHT_BRIGHT_MIN_MIN));	
+	 //gradual_rhythm_cfg->clr_buff=app_static_clr 实现了切换到音乐模式下时调整到粉红色 亮度最小
 	}	
 		
 //	if (speed)

+ 2 - 1
YC11xx_SmartLight/Librarier/sc_user/u_global.h

@@ -14,8 +14,9 @@
 //typedef unsigned char u8;
 //typedef unsigned short u16;
 //#define u32 (unsigned int);
-#define firmware_version "YC1166_V1.0.4"						//	固件版本号
+#define firmware_version "YC1166_V1.0.5"						//	固件版本号
 #define firmware_is_mic		1													//是否支持mic
+#define userset_mac_en		0													//是否设置mac地址 量产时一定关闭  否则批量烧录时设置不了mac地址
 
 // Firmware Revision
 #define U_DIS_FW_REV_STR      	    ("0220")

+ 2 - 2
YC11xx_SmartLight/Librarier/sc_user/u_power.c

@@ -8,8 +8,8 @@
 #define POWER_DET_CHN		(0x02)
 #define POWER_DET_PORT		(0x32)
 //#define POWER_ADC_ERR_PVT	(11000) // 短路时的电压对应值 低于10.5V  这里单位为mV
-//#define POWER_ADC_ERR_PVT	(9700) 	//试产阶段的阈值电压
-#define POWER_ADC_ERR_PVT	(10300)				//	最后批量版本使用的阈值电压
+#define POWER_ADC_ERR_PVT	(9700) 	//试产阶段的阈值电压
+//#define POWER_ADC_ERR_PVT	(10300)				//	最后批量版本使用的阈值电压
 
 #define ADC_CHECK         (1)
 

Fichier diff supprimé car celui-ci est trop grand
+ 259 - 271
YC11xx_SmartLight/ModuleDemo/SmartLight_Prj/Prj/MDK/Objects/output/flash.dat


Fichier diff supprimé car celui-ci est trop grand
+ 259 - 271
YC11xx_SmartLight/ModuleDemo/SmartLight_Prj/Prj/MDK/Objects/output/flash_final.dat


Fichier diff supprimé car celui-ci est trop grand
+ 263 - 267
YC11xx_SmartLight/ModuleDemo/SmartLight_Prj/Prj/MDK/Objects/output/out.rom


+ 7 - 1
YC11xx_SmartLight/ModuleDemo/SmartLight_Prj/Prj/MDK/Objects/output/版本更新记录.txt

@@ -19,4 +19,10 @@ V1.0.4更新说明:
 2021/10/20
 ==========
 1.修改不带mic版本为灰色底色的遥控器
-2.修改了短路保护阈值为10.3V
+2.针对试产板进行更新,此版本只能用于试产板子。
+
+V1.0.5更新说明:
+2021/11/12
+==========
+1.解决批量烧录不能改变mac地址问题。
+2.此版本只能用于试产板子。

Fichier diff supprimé car celui-ci est trop grand
+ 6 - 7
YC11xx_SmartLight/ModuleDemo/SmartLight_Prj/Prj/MDK/yc11xx.uvguix.liuhao


+ 4 - 1
YC11xx_SmartLight/ModuleDemo/SmartLight_Prj/User/main.c

@@ -240,10 +240,13 @@ void Bt_Reset()
 {
 	uint8_t advD[22] = {0x02,0x01,0x06,0x05,0x03,0x12,0x18,0x0f,0x18,0x03,0x19,0x80,0x01,0x08,0x09,0x31,0x31,0x58,0x58,0x42,0x4c,0x45};
 	//uint8_t addr[6]  = {0xF3,0xF2,0xF1,0xF0,0x06,0x06};
-	uint8_t addr[6]  = {0xac,0x02,0x88,0x11,0x43,0Xac};//官方代码mac地址
+	
 	uint8_t name[] = {"Smart Light"};//Light Life
 	Bt_Renew_Le_AdvData(advD,22);
+	#if (userset_mac_en==1)
+	uint8_t addr[6]  = {0xac,0x02,0x88,0x11,0x43,0Xac};//官方代码mac地址
  	Bt_SetLeMac(addr);									//设置蓝牙地址 
+	#endif
 	Bt_Re_LeAdvName(name,sizeof(name));
 	Bt_Re_LeDeivcename(name,sizeof(name));			
 	Lpm_Set_Conn_Interval(0x1a0);

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff