1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516 |
- #include "u_light_ctrl.h"
- #include "u_effect_color.h"
- #include "u_effect_rhythm.h"
- #include "u_app_handler.h"
- #include "u_effect_normal.h"
- #include "u_app_handler.h"
- #include "u_pwm_drive.h"
- void light_power_set(uint8_t set_state)
- {
- if (set_state == GLO_EN)
- {
- g_light_para.power_st = GLO_EN;
- if (g_light_para.app_mode[0] < LIGHT_APP_MODE_RC_MIN)
- {
- light_mode_set(g_light_para.app_mode);
- }
- else
- {
- rc_mode_enter(g_light_para.rc_mode);
- }
- }
- else
- {
- g_light_para.power_st = GLO_DIS;
- u_rhythm_timer_ctrl(GLO_DIS);
- light_effect_timer_stop();
- light_set_color(0x00);
- }
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("power_st = %d\n", g_light_para.power_st);
- #endif
- }
- void light_speed_ctrl(uint8_t light_speed)
- {
- // if (change_speed <= 0 || change_speed > 11 || g_light_para.effect == LIGHT_EFFECT_STATIC || g_light_para.effect == LIGHT_EFFECT_RHYTHM)
- // {
- // return;
- // }
- unsigned char glo_s;
- if(light_speed == 0)
- {
- light_speed = 1;
- }
- g_light_para.app_speed = light_speed;
- g_light_para.speed = (110 - light_speed) / 10;
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("g_speed = %d\n", g_light_para.speed);
- #endif
- if (g_light_para.speed > LIGHT_SPEED_MAX)
- {
- light_effect_timer_stop();
- return;
- }
- switch (g_light_para.effect)
- {
- // case LIGHT_EFFECT_NULL:
- // {
- // u_analog_timer_stop(&g_ag_timer_light_effect);
- // }
- // break;
- case LIGHT_EFFECT_JUMP:
- {
- light_mode_jump_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_GRADUAL:
- {
- light_mode_gradual_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_BREATH:
- {
- light_mode_breath_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_BLINK:
- {
- light_mode_blink_cfg(&g_light_info, 0, 0, 0, g_light_para.speed, 0);
- }
- break;
- default:
- {
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("speed_false\n");
- #endif
- //u_analog_timer_stop(&g_ag_timer_light_effect);
- }
- break;
- }
- }
- void ctrl_light_speed_ctrl(uint8_t light_speed) //有麦遥控器单独
- {
- // if (change_speed <= 0 || change_speed > 11 || g_light_para.effect == LIGHT_EFFECT_STATIC || g_light_para.effect == LIGHT_EFFECT_RHYTHM)
- // {
- // return;
- // }
- unsigned char glo_s;
- if(light_speed == 0)
- {
- light_speed = 1;
- }
- g_light_para.app_speed = light_speed;
- g_light_para.speed = (110 - light_speed) / 10;
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("g_speed = %d\n", g_light_para.speed);
- #endif
- if (g_light_para.speed > LIGHT_SPEED_MAX)
- {
- light_effect_timer_stop();
- return;
- }
- switch (g_light_para.effect)
- {
- // case LIGHT_EFFECT_NULL:
- // {
- // u_analog_timer_stop(&g_ag_timer_light_effect);
- // }
- // break;
- case LIGHT_EFFECT_JUMP:
- {
- light_mode_jump_cfg(&g_light_info, 0, 0, g_light_para.speed*2, 0);
- }
- break;
- case LIGHT_EFFECT_GRADUAL:
- {
- light_mode_gradual_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_BREATH:
- {
- light_mode_breath_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_BLINK:
- {
- light_mode_blink_cfg(&g_light_info, 0, 0, 0, g_light_para.speed, 0);
- }
- break;
- default:
- {
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("speed_false\n");
- #endif
- //u_analog_timer_stop(&g_ag_timer_light_effect);
- }
- break;
- }
- }
- void light_bright_ctrl(uint8_t light_bright)
- {
- if(light_bright == 1)
- {
- light_bright=2;
- }
- g_light_para.bright = light_bright;
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("g_bright = %d\n", g_light_para.bright);
- #endif
- switch (g_light_para.effect)
- {
- case LIGHT_EFFECT_JUMP:
- {
- light_mode_jump_cfg(&g_light_info, 0, 0, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_GRADUAL:
- {
- light_mode_gradual_cfg(&g_light_info, 0, 0, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_STATIC:
- {
- light_mode_static_cfg(&g_light_info, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_BREATH:
- {
- light_mode_breath_cfg(&g_light_info, 0, 0, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_BLINK:
- {
- light_mode_blink_cfg(&g_light_info, 0, 0, 0, 0, g_light_para.bright);
- }
- break;
- default:
- {
- //dream_mode_rainbow_spectra_cfg(&g_effect_dream_rainbow_info, 0, 0, 0, 0);
- }
- break;
- }
- }
- void light_rhythm_enter(uint8_t rhythm_mode)
- {
- g_light_para.rhythm_mode = rhythm_mode;
- light_effect_timer_stop();
- //u_rhythm_timer_ctrl(GLO_EN); //开启律动
- //u_rhythm_timer_ctrl(GLO_DIS);
- app_rhythm_val_up(0);
- switch (rhythm_mode)
- {
- case RHYTHM_MODE_STOP:
- {
- u_rhythm_timer_ctrl(GLO_DIS);
- }
- break;
- case RHYTHM_MODE_GRADUAL_7:
- {
- //light_rhythm_mode_one_clr_cfg(&g_normal_rhythm, &g_light_para.one_rhythm_clr, NULL);
- light_rhythm_mode_gradual_cfg(&g_normal_rhythm, app_static_clr, 7, NULL);
- }
- break;
- case RHYTHM_MODE_JUMP_7://RHYTHM_MODE_JUMP_7:
- {
- light_rhythm_mode_jump_cfg(&g_normal_rhythm, base_clr, 7, NULL);
- light_set_color( light_color_bright_create( 0xff0000 , LIGHT_BRIGHT_MIN_MIN));
- }
- break;
- case RHYTHM_MODE_FADE_7://RHYTHM_MODE_GRADUAL_7:
- {
- light_rhythm_mode_fade_cfg(&g_normal_rhythm, base_clr, 7, NULL);
- light_set_color( light_color_bright_create( 0x00ffff , LIGHT_BRIGHT_MIN_MIN));
- }
- break;
- case RHYTHM_MODE_JUMP_3:
- {
- light_rhythm_mode_jump_cfg(&g_normal_rhythm, base_clr, 3, NULL);
- light_set_color( light_color_bright_create( 0x0000ff , LIGHT_BRIGHT_MIN_MIN));
- }
- break;
- case RHYTHM_MODE_FADE_3:
- {
- light_rhythm_mode_fade_cfg(&g_normal_rhythm, base_clr, 3, NULL);
- light_set_color( light_color_bright_create( 0x00ff00 , LIGHT_BRIGHT_MIN_MIN));
- }
- break;
- default:
- {
- u_rhythm_timer_ctrl(GLO_DIS);
- }
- break;
- }
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("Rhythm_mode = 0x%X\n", rhythm_mode);
- #endif
- }
- void rc_mode_enter(uint8_t rc_mode)
- {
- unsigned char glo_s=0;
- unsigned char cnt_temp=0;
- u_rhythm_timer_ctrl(GLO_DIS);
- g_light_para.rc_mode = rc_mode;
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("s_rc_mode = %d\n", g_light_para.rc_mode);
- #endif
-
- switch(g_light_para.rc_mode)
- {
- case RC_MODE_COLOR_R:
- case RC_MODE_COLOR_G:
- case RC_MODE_COLOR_B:
- case RC_MODE_COLOR_W:
- case RC_MODE_COLOR_1:
- case RC_MODE_COLOR_2:
- case RC_MODE_COLOR_3:
- case RC_MODE_COLOR_4:
- case RC_MODE_COLOR_5:
- case RC_MODE_COLOR_6:
- case RC_MODE_COLOR_7:
- case RC_MODE_COLOR_8:
- case RC_MODE_COLOR_9:
- case RC_MODE_COLOR_10:
- case RC_MODE_COLOR_11:
- case RC_MODE_COLOR_12:
- {
-
- light_mode_static_cfg(&g_light_info, &rc_static_clr[g_light_para.rc_mode], g_light_para.bright);
- g_light_para.app_mode[0] = LIGHT_APP_MODE_RC_STATIC;
- }
- break;
- g_light_para.app_mode[0] = LIGHT_APP_MODE_RC_DYNAMIC;
- case RC_MODE_FLASH:
- {
- static uint8_t s_flash_color_ind = 0;
- cnt_temp = ++s_flash_color_ind;
- s_flash_color_ind = cnt_temp % 7;
- light_mode_jump_cfg(&g_light_info, &base_clr[s_flash_color_ind], 1, g_light_para.speed, g_light_para.bright);
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("s_flash_color_ind = %d\n", s_flash_color_ind);
- #endif
- }
- break;
- case RC_MODE_STROBE:
- {
- static uint8_t s_strobe_color_ind = 0;
- s_strobe_color_ind = (s_strobe_color_ind + 3) % 21;
- //s_strobe_color_ind = ++s_strobe_color_ind % 7;
- light_mode_blink_cfg(&g_light_info, &STROBE_clr[s_strobe_color_ind], 3, 1, g_light_para.speed, g_light_para.bright);
- //light_mode_blink_cfg(&g_light_info, &base_clr[s_strobe_color_ind], 1, 1, g_light_para.speed, g_light_para.bright);
- }
- break;
- case RC_MODE_FADE:
- {
- static uint8_t s_fade_color_ind = 0;
- cnt_temp = ++s_fade_color_ind;
- s_fade_color_ind = cnt_temp % 2;
- if (s_fade_color_ind)
- {
- light_mode_breath_cfg(&g_light_info, &rc_clr_smooth[0], 7, g_light_para.speed, g_light_para.bright);
- }
- else
- {
- light_mode_breath_cfg(&g_light_info, &base_clr[0], 3, g_light_para.speed, g_light_para.bright);
- }
- }
- break;
- case RC_MODE_SMOOTH:
- {
- light_mode_gradual_cfg(&g_light_info, rc_clr_smooth, 7, g_light_para.speed, g_light_para.bright);
- }
- break;
- case RC_CODE_FADE3:
- {
- light_mode_breath_cfg(&g_light_info, base_clr, 3, g_light_para.speed, g_light_para.bright);
- }
- break;
- case RC_CODE_FADE7:
- {
- light_mode_breath_cfg(&g_light_info, base_clr, 7, g_light_para.speed, g_light_para.bright);
- }
- break;
- case RC_CODE_JUMP3:
- {
- light_mode_jump_cfg(&g_light_info, base_clr, 3, g_light_para.speed*2, g_light_para.bright);
- }
- break;
- case RC_CODE_JUMP7:
- {
- light_mode_jump_cfg(&g_light_info, base_clr, 7, g_light_para.speed*2, g_light_para.bright);
- }
- break;
-
- case RC_MODE_RHYTM_MUSIC1:
- {
- g_light_para.mic_AppOrDriver = 1;
- light_rhythm_enter(RHYTHM_MODE_FADE_7);
- u_rhythm_timer_ctrl(GLO_EN);
- }
- break;
- case RC_MODE_RHYTM_MUSIC2:
- {
- g_light_para.mic_AppOrDriver = 1;
- light_rhythm_enter(RHYTHM_MODE_FADE_3);
- u_rhythm_timer_ctrl(GLO_EN);
- }
- break;
- case RC_MODE_RHYTM_MUSIC3:
- {
- g_light_para.mic_AppOrDriver = 1;
- light_rhythm_enter(RHYTHM_MODE_JUMP_3);
- u_rhythm_timer_ctrl(GLO_EN);
- }
- break;
- case RC_MODE_RHYTM_MUSIC4:
- {
- g_light_para.mic_AppOrDriver = 1;
- light_rhythm_enter(RHYTHM_MODE_JUMP_7);
- u_rhythm_timer_ctrl(GLO_EN);
- }
- break;
- default:
- {
-
- }
- break;
- }
- }
- /********************************* ir_decode **********************************/
- #include "u_time.h"
- void ir_decode(const uint8_t *ir_code)
- {
- #define RC_USER_CODE_0 (0x00)
- #define RC_USER_CODE_1 (0xFF) //无麦
- #define RC_USER_CODE_2 (0xF7) //有麦
-
- if(g_light_para.mic == 0)
- {
- if (ir_code[0] == RC_USER_CODE_0 && ir_code[1] == RC_USER_CODE_1 )
- {
- if (ir_code[2] == (~ir_code[3] & 0xff))
- {
- //U_UART_PRINTF("ir_code = %02X\n", ir_code[2]);
- if (g_light_para.power_st == GLO_DIS && ir_code[2] != RC_CODE_ON)
- {
- return;
- }
- switch(ir_code[2])
- {
- case RC_CODE_UP:
- {
- if (g_light_para.effect == LIGHT_EFFECT_STATIC)
- {
- g_light_para.bright = (g_light_para.bright + 10) >= LIGHT_BRIGHT_MAX ? LIGHT_BRIGHT_MAX : (g_light_para.bright + 10);
- light_bright_ctrl(g_light_para.bright);
-
- }
- else if(g_light_para.effect >= LIGHT_EFFECT_RHYTHM_MIN)
- {
- //rhythm_sensit_ctrl(g_light_para.app_music_mode, -2, 0);
- }
- else
- {
- g_light_para.app_speed = (g_light_para.app_speed + 10) >= LIGHT_APP_SPEED_MAX ? LIGHT_APP_SPEED_MAX : (g_light_para.app_speed + 10);
- light_speed_ctrl(g_light_para.app_speed);
- }
- }
- break;
- case RC_CODE_DOWN:
- {
- if (g_light_para.effect == LIGHT_EFFECT_STATIC)
- {
- g_light_para.bright = (g_light_para.bright - 10) <= LIGHT_BRIGHT_MIN ? LIGHT_BRIGHT_MIN : (g_light_para.bright - 10);
- light_bright_ctrl(g_light_para.bright);
- }
- else if(g_light_para.effect >= LIGHT_EFFECT_RHYTHM_MIN)
- {
- //rhythm_sensit_ctrl(g_light_para.app_music_mode, -2, 0);
- }
- else
- {
- g_light_para.app_speed = (g_light_para.app_speed - 10) < LIGHT_SPEED_MIN ? LIGHT_SPEED_MIN : (g_light_para.app_speed - 10);
- light_speed_ctrl(g_light_para.app_speed);
- }
- }
- break;
- case RC_CODE_OFF:
- {
- light_power_set(GLO_DIS);
- light_state_upload();
- }
- break;
- case RC_CODE_ON:
- {
- light_power_set(GLO_EN);
- light_state_upload();
- }
- break;
- case RC_CODE_FLASH:
- {
- rc_mode_enter(RC_MODE_FLASH);
- }
- break;
- case RC_CODE_STROBE:
- {
- rc_mode_enter(RC_MODE_STROBE);
- }
- break;
- case RC_CODE_FADE:
- {
- rc_mode_enter(RC_MODE_FADE);
- }
- break;
- case RC_CODE_SMOOTH:
- {
- rc_mode_enter(RC_MODE_SMOOTH);
- }
- break;
- case RC_CODE_COLOR_R:
- {
- rc_mode_enter(RC_MODE_COLOR_R);
- }
- break;
- case RC_CODE_COLOR_G:
- {
- rc_mode_enter(RC_MODE_COLOR_G);
- }
- break;
- case RC_CODE_COLOR_B:
- {
- rc_mode_enter(RC_MODE_COLOR_B);
- }
- break;
- case RC_CODE_W:
- {
- rc_mode_enter(RC_MODE_COLOR_W);
- }
- break;
- case RC_CODE_COLOR_1:
- {
- rc_mode_enter(RC_MODE_COLOR_1);
- }
- break;
- case RC_CODE_COLOR_2:
- {
- rc_mode_enter(RC_MODE_COLOR_2);
- }
- break;
- case RC_CODE_COLOR_3:
- {
- rc_mode_enter(RC_MODE_COLOR_3);
- }
- break;
- case RC_CODE_COLOR_4:
- {
- rc_mode_enter(RC_MODE_COLOR_4);
- }
- break;
- case RC_CODE_COLOR_5:
- {
- rc_mode_enter(RC_MODE_COLOR_5);
- }
- break;
- case RC_CODE_COLOR_6:
- {
- rc_mode_enter(RC_MODE_COLOR_6);
- }
- break;
- case RC_CODE_COLOR_7:
- {
- rc_mode_enter(RC_MODE_COLOR_7);
- }
- break;
- case RC_CODE_COLOR_8:
- {
- rc_mode_enter(RC_MODE_COLOR_8);
- }
- break;
- case RC_CODE_COLOR_9:
- {
- rc_mode_enter(RC_MODE_COLOR_9);
- }
- break;
- case RC_CODE_COLOR_10:
- {
- rc_mode_enter(RC_MODE_COLOR_10);
- }
- break;
- case RC_CODE_COLOR_11:
- {
- rc_mode_enter(RC_MODE_COLOR_11);
- }
- break;
- case RC_CODE_COLOR_12:
- {
- rc_mode_enter(RC_MODE_COLOR_12);
- }
- break;
- }
- light_info_save_set();
- }
- }
- }
- else
- {
- if (ir_code[0] == RC_USER_CODE_0 && ( ir_code[1] == RC_USER_CODE_2 ))
- {
- if (ir_code[2] == (~ir_code[3] & 0xff))
- {
- //U_UART_PRINTF("ir_code = %02X\n", ir_code[2]);
- if (g_light_para.power_st == GLO_DIS && ir_code[2] != RC_CODE_ON_20)
- {
- return;
- }
- switch(ir_code[2])
- {
- case RC_CODE_UP_20:
- {
- if (g_light_para.effect == LIGHT_EFFECT_STATIC)
- {
- g_light_para.bright = (g_light_para.bright + 10) >= LIGHT_BRIGHT_MAX ? LIGHT_BRIGHT_MAX : (g_light_para.bright + 10);
- light_bright_ctrl(g_light_para.bright);
- }
- else if(g_light_para.effect >= LIGHT_EFFECT_RHYTHM_MIN)
- {
-
- rhythm_sensit_ctrl(-5,g_light_para.rhythm_sensit);
- //rhythm_sensit_ctrl(g_light_para.app_music_mode, -2, 0);
- }
- else
- {
- g_light_para.app_speed = (g_light_para.app_speed + 10) >= LIGHT_APP_SPEED_MAX ? LIGHT_APP_SPEED_MAX : (g_light_para.app_speed + 10);
- ctrl_light_speed_ctrl(g_light_para.app_speed);
- }
- }
- break;
- case RC_CODE_DOWN_20:
- {
- if (g_light_para.effect == LIGHT_EFFECT_STATIC)
- {
- g_light_para.bright = (g_light_para.bright - 10) <= LIGHT_BRIGHT_MIN ? LIGHT_BRIGHT_MIN : (g_light_para.bright - 10);
- light_bright_ctrl(g_light_para.bright);
- }
- else if(g_light_para.effect >= LIGHT_EFFECT_RHYTHM_MIN)
- {
-
- rhythm_sensit_ctrl(5,g_light_para.rhythm_sensit);
- }
- else
- {
- g_light_para.app_speed = (g_light_para.app_speed - 10) < LIGHT_SPEED_MIN ? LIGHT_SPEED_MIN : (g_light_para.app_speed - 10);
- ctrl_light_speed_ctrl(g_light_para.app_speed);
- }
- }
- break;
- case RC_CODE_OFF_20:
- {
- light_power_set(GLO_DIS);
- light_state_upload();
- }
- break;
- case RC_CODE_ON_20:
- {
- light_power_set(GLO_EN);
- light_state_upload();
- }
- break;
- case RC_CODE_COLOR_R_20:
- {
- rc_mode_enter(RC_MODE_COLOR_R);
- }
- break;
- case RC_CODE_COLOR_G_20:
- {
- rc_mode_enter(RC_MODE_COLOR_G);
- }
- break;
- case RC_CODE_COLOR_B_20:
- {
- rc_mode_enter(RC_MODE_COLOR_B);
- }
- break;
- case RC_CODE_W_20:
- {
- rc_mode_enter(RC_MODE_COLOR_W);
- }
- break;
- case RC_CODE_COLOR_ORANGE_20:
- {
- rc_mode_enter(RC_MODE_COLOR_4);
- }
- break;
- case RC_CODE_COLOR_YELLOW_20:
- {
- rc_mode_enter(RC_MODE_COLOR_10);
- }
- break;
- case RC_CODE_COLOR_CYAN_20:
- {
- rc_mode_enter(RC_MODE_COLOR_5);
- }
- break;
- case RC_CODE_COLOR_PURPLE_20:
- {
- rc_mode_enter(RC_MODE_COLOR_6);
- }
- break;
- // case RC_CODE_MUSIC1_20:
- // {
- // g_light_para.mic_AppOrDriver = 1;
- // light_rhythm_enter(RHYTHM_MODE_FADE_7);
- // u_rhythm_timer_ctrl(GLO_EN);
- // }
- // break;
- // case RC_CODE_MUSIC2_20:
- // {
- // g_light_para.mic_AppOrDriver = 1;
- // light_rhythm_enter(RHYTHM_MODE_FADE_3);
- // u_rhythm_timer_ctrl(GLO_EN);
- // }
- // break;
- // case RC_CODE_MUSIC3_20:
- // {
- // g_light_para.mic_AppOrDriver = 1;
- // light_rhythm_enter(RHYTHM_MODE_JUMP_3);
- // u_rhythm_timer_ctrl(GLO_EN);
- // }
- // break;
- // case RC_CODE_MUSIC4_20:
- // {
- // g_light_para.mic_AppOrDriver = 1;
- // light_rhythm_enter(RHYTHM_MODE_JUMP_7);
- // u_rhythm_timer_ctrl(GLO_EN);
- // }
- // break;
- case RC_CODE_MUSIC1_20:
- {
- //g_light_para.mic_AppOrDriver = 1;
- //light_rhythm_enter(RHYTHM_MODE_FADE_7);
- //u_rhythm_timer_ctrl(GLO_EN);
- rc_mode_enter(RC_MODE_RHYTM_MUSIC1);
- }
- break;
- case RC_CODE_MUSIC2_20:
- {
- //g_light_para.mic_AppOrDriver = 1;
- //light_rhythm_enter(RHYTHM_MODE_FADE_3);
- //u_rhythm_timer_ctrl(GLO_EN);
- rc_mode_enter(RC_MODE_RHYTM_MUSIC2);
- }
- break;
- case RC_CODE_MUSIC3_20:
- {
- //g_light_para.mic_AppOrDriver = 1;
- //light_rhythm_enter(RHYTHM_MODE_JUMP_3);
- //u_rhythm_timer_ctrl(GLO_EN);
- rc_mode_enter(RC_MODE_RHYTM_MUSIC3);
- }
- break;
- case RC_CODE_MUSIC4_20:
- {
- //g_light_para.mic_AppOrDriver = 1;
- //light_rhythm_enter(RHYTHM_MODE_JUMP_7);
- //u_rhythm_timer_ctrl(GLO_EN);
- rc_mode_enter(RC_MODE_RHYTM_MUSIC4);
- }
- break;
- case RC_CODE_FADE7_20:
- {
- rc_mode_enter(RC_CODE_FADE7);
- }
- break;
- case RC_CODE_FADE3_20:
- {
- rc_mode_enter(RC_CODE_FADE3);
-
- }
- break;
- case RC_CODE_JUMP3_20:
- {
- rc_mode_enter(RC_CODE_JUMP3);
- }
- break;
- case RC_CODE_JUMP7_20:
- {
- rc_mode_enter(RC_CODE_JUMP7);
- }
- break;
- }
- light_info_save_set();
- }
- }
- }
- }
-
- /********************************* ir_decode end **********************************/
- uint8_t rgb_line_order_check(void)
- {
- uint8_t order_err = 0;
-
- if (g_light_para.rgb_order[0] == 0)
- {
- if ((g_light_para.rgb_order[1] == 1 && g_light_para.rgb_order[2] == 2) || (g_light_para.rgb_order[2] == 1 && g_light_para.rgb_order[1] == 2))
- {
- order_err = 1;
- }
- else
- {
- order_err = 0;
- }
- }
- else if (g_light_para.rgb_order[0] == 1)
- {
- if ((g_light_para.rgb_order[1] == 0 && g_light_para.rgb_order[2] == 2) || (g_light_para.rgb_order[2] == 0 && g_light_para.rgb_order[1] == 2))
- {
- order_err = 1;
- }
- else
- {
- order_err = 0;
- }
- }
- else if (g_light_para.rgb_order[0] == 2)
- {
- if ((g_light_para.rgb_order[1] == 0 && g_light_para.rgb_order[2] == 1) || (g_light_para.rgb_order[2] == 0 && g_light_para.rgb_order[1] == 1))
- {
- order_err = 1;
- }
- else
- {
- order_err = 0;
- }
- }
- else
- {
- order_err = 0;
- }
- if (order_err == 0)
- {
- g_light_para.rgb_order[0] = 0;
- g_light_para.rgb_order[1] = 1;
- g_light_para.rgb_order[2] = 2;
- }
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("order_err = %d\n", order_err);
- #endif
- return order_err;
- }
- /********************************* app_ctrl end **********************************/
- /********************************* flash_save **********************************/
- #include "u_time.h"
- #define FLASH_SAVE_BASE_ADDR (0x27800)
- #define FLASH_SAVE_FLAG (0x5A)
- extern AlarmTime_t m_alarm_cfg[2]; //3个闹钟结构体定义
- void flash_printf(void)
- {
- // U_UART_PRINTF("save_flag = %d, clr_data = %d, effect = %d\n", \
- // g_light_para.save_flag, m_app_colour_info.clr_data[0], m_app_mode_info[0].effect);
- //
- // U_UART_PRINTF("dow_st = %d, alarm_st = %d\n", \
- // m_count_down.alarm_state, m_alarm_cfg[0].alarm_state);
- }
- static uint32_t flash_offset_addr_set(uint32_t data_size)
- {
- if (data_size % 4 == 0)
- {
- return data_size;
-
- }
- else
- {
- return data_size + (4 - (data_size % 4));
- }
- }
- /********************************* flash_save **********************************/
- /********************************* flash_save **********************************/
- #include "user_driver.h"
- #define BT_LIGHT_FLASH_ADDR (0x3f000) //芯片最后一次扇区
- static uint8_t m_flash_save_flg = 0;
- void light_info_save_set(void)
- {
- m_flash_save_flg = 1;
- }
- void light_info_save(void)
- {
- // flash_set_line_mode(1);
- flash_erase_sector(BT_LIGHT_FLASH_ADDR);
- flash_write_data((uint8_t *)&g_light_para, BT_LIGHT_FLASH_ADDR , sizeof(LightPara_t));
- // flash_set_line_mode(4);
- }
- void light_flash_save_cb(void)
- {
- if (m_flash_save_flg)
- {
- m_flash_save_flg = 0;
- light_info_save();
- }
- }
- /********************************* flash_save end **********************************/
- void light_info_init(void)
- {
- // flash_set_line_mode(1);
- flash_read_data((uint8_t *)&g_light_para, BT_LIGHT_FLASH_ADDR , sizeof(LightPara_t));
- delay_us(20);
- // flash_set_line_mode(4);
-
- if (g_light_para.save_flag == FLASH_SAVE_FLAG)
- {
- //flash_printf();
- }
- else
- {
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("flash_init\n");
- #endif
- memset(&g_light_para, 0, sizeof(LightPara_t));
- g_light_para.save_flag = FLASH_SAVE_FLAG;
- g_light_para.power_st = GLO_EN;
- g_light_para.bright = LIGHT_BRIGHT_MAX;
- g_light_para.speed = LIGHT_DEF_SPEED;
- g_light_para.rhythm_sensit = 15;
- g_light_para.app_speed = 109 - LIGHT_DEF_SPEED * 10;
- g_light_para.app_mode[0] = LIGHT_APP_MODE_COLORUR;
- g_light_para.app_mode[1] = 0x01;
- g_light_para.clr_temp[0] = 0xFF;
- g_light_para.clr_temp[1] = 0x00;
- g_light_para.clr_temp[2] = 0x00;
- g_light_para.rgb_order[0] = 0;
- g_light_para.rgb_order[1] = 1;
- g_light_para.rgb_order[2] = 2;
- //app_mode_info_init();
- light_info_save();
- }
- rgb_line_order_check();
- #ifdef DEBUG_DRV_APP
- U_UART_PRINTF("app_mode = %02X, rc_mode = %d\n", g_light_para.app_mode[0], g_light_para.rc_mode);
- #endif
- light_power_set(g_light_para.power_st);
- }
- #if 0
- void light_power_set(uint8_t set_state)
- {
- if (set_state == GLO_EN)
- {
- g_light_para.power_st = GLO_EN;
- if (g_light_para.app_mode[0] < LIGHT_APP_MODE_RC_MIN)
- {
- light_mode_set(g_light_para.app_mode);
- }
- else
- {
- rc_mode_enter(g_light_para.rc_mode);
- }
- }
- else
- {
- g_light_para.power_st = GLO_DIS;
- u_rhythm_timer_ctrl(GLO_DIS);
- light_effect_timer_stop();
- light_set_color(0x00);
-
- }
-
- U_UART_PRINTF("power_st = %d\n", g_light_para.power_st);
- }
- void light_speed_ctrl(uint8_t light_speed)
- {
- // if (change_speed <= 0 || change_speed > 11 || g_light_para.effect == LIGHT_EFFECT_STATIC || g_light_para.effect == LIGHT_EFFECT_RHYTHM)
- // {
- // return;
- // }
- g_light_para.app_speed = light_speed;
- g_light_para.speed = (110 - light_speed) / 10;
- U_UART_PRINTF("g_speed = %d\n", g_light_para.speed);
- if (g_light_para.speed > LIGHT_SPEED_MAX)
- {
- light_effect_timer_stop();
- return;
- }
- switch (g_light_para.effect)
- {
- // case LIGHT_EFFECT_NULL:
- // {
- // u_analog_timer_stop(&g_ag_timer_light_effect);
- // }
- // break;
- case LIGHT_EFFECT_JUMP:
- {
- light_mode_jump_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_GRADUAL:
- {
- light_mode_gradual_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_BREATH:
- {
- light_mode_breath_cfg(&g_light_info, 0, 0, g_light_para.speed, 0);
- }
- break;
- case LIGHT_EFFECT_BLINK:
- {
- light_mode_blink_cfg(&g_light_info, 0, 0, 0, g_light_para.speed, 0);
- }
- break;
-
- default:
- {
- U_UART_PRINTF("speed_false\n");
- //u_analog_timer_stop(&g_ag_timer_light_effect);
- }
- break;
- }
- }
- void light_bright_ctrl(uint8_t light_bright)
- {
- g_light_para.bright = light_bright;
- U_UART_PRINTF("g_bright = %d\n", g_light_para.bright);
- switch (g_light_para.effect)
- {
- case LIGHT_EFFECT_JUMP:
- {
- light_mode_jump_cfg(&g_light_info, 0, 0, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_GRADUAL:
- {
- light_mode_gradual_cfg(&g_light_info, 0, 0, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_STATIC:
- {
- light_mode_static_cfg(&g_light_info, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_BREATH:
- {
- light_mode_breath_cfg(&g_light_info, 0, 0, 0, g_light_para.bright);
- }
- break;
- case LIGHT_EFFECT_BLINK:
- {
- light_mode_blink_cfg(&g_light_info, 0, 0, 0, 0, g_light_para.bright);
- }
- break;
-
- default:
- {
- //dream_mode_rainbow_spectra_cfg(&g_effect_dream_rainbow_info, 0, 0, 0, 0);
- }
- break;
- }
- }
- void light_rhythm_enter(uint8_t rhythm_mode)
- {
- g_light_para.rhythm_mode = rhythm_mode;
- light_effect_timer_stop();
- u_rhythm_timer_ctrl(GLO_EN);
- app_rhythm_val_up(0);
- switch (rhythm_mode)
- {
- case RHYTHM_MODE_STOP:
- {
- u_rhythm_timer_ctrl(GLO_DIS);
- }
- break;
- case RHYTHM_MODE_GRADUAL_7:
- {
- //light_rhythm_mode_one_clr_cfg(&g_normal_rhythm, &g_light_para.one_rhythm_clr, NULL);
- light_rhythm_mode_gradual_cfg(&g_normal_rhythm, app_static_clr, 7, NULL);
- }
- break;
- case RHYTHM_MODE_JUMP_7://RHYTHM_MODE_JUMP_7:
- {
- light_rhythm_mode_jump_cfg(&g_normal_rhythm, base_clr, 7, NULL);
- }
- break;
- case RHYTHM_MODE_FADE_7://RHYTHM_MODE_GRADUAL_7:
- {
- light_rhythm_mode_fade_cfg(&g_normal_rhythm, base_clr, 7, NULL);
- }
- break;
- case RHYTHM_MODE_JUMP_3:
- {
- light_rhythm_mode_jump_cfg(&g_normal_rhythm, base_clr, 3, NULL);
- }
- break;
- case RHYTHM_MODE_FADE_3:
- {
- light_rhythm_mode_fade_cfg(&g_normal_rhythm, base_clr, 3, NULL);
- }
- break;
-
- default:
- {
- u_rhythm_timer_ctrl(GLO_DIS);
- }
- break;
- }
- U_UART_PRINTF("Rhythm_mode = 0x%X\n", rhythm_mode);
-
- }
- void rc_mode_enter(uint8_t rc_mode)
- {
- uint8_t cnt_tmp=0;
- u_rhythm_timer_ctrl(GLO_DIS);//节奏控制
- g_light_para.rc_mode = rc_mode;
- U_UART_PRINTF("s_rc_mode = %d\n", g_light_para.rc_mode);
-
-
- switch(g_light_para.rc_mode)
- {
- case RC_MODE_COLOR_R:
- case RC_MODE_COLOR_G:
- case RC_MODE_COLOR_B:
- case RC_MODE_COLOR_W:
- case RC_MODE_COLOR_1:
- case RC_MODE_COLOR_2:
- case RC_MODE_COLOR_3:
- case RC_MODE_COLOR_4:
- case RC_MODE_COLOR_5:
- case RC_MODE_COLOR_6:
- case RC_MODE_COLOR_7:
- case RC_MODE_COLOR_8:
- case RC_MODE_COLOR_9:
- case RC_MODE_COLOR_10:
- case RC_MODE_COLOR_11:
- case RC_MODE_COLOR_12:
- {
-
- light_mode_static_cfg(&g_light_info, &rc_static_clr[g_light_para.rc_mode], g_light_para.bright);
-
- g_light_para.app_mode[0] = LIGHT_APP_MODE_RC_STATIC;
- }
- break;
- //g_light_para.app_mode[0] = LIGHT_APP_MODE_RC_DYNAMIC; //bug
- case RC_MODE_FLASH:
- {
- static uint8_t s_flash_color_ind = 0;
- cnt_tmp = ++s_flash_color_ind;
- s_flash_color_ind = cnt_tmp % 7;
- light_mode_jump_cfg(&g_light_info, &base_clr[s_flash_color_ind], 1, g_light_para.speed, g_light_para.bright);
- U_UART_PRINTF("s_flash_color_ind = %d\n", s_flash_color_ind);
- }
- break;
- case RC_MODE_STROBE:
- {
- static uint8_t s_strobe_color_ind = 0;
- cnt_tmp = ++s_strobe_color_ind;
- s_strobe_color_ind = cnt_tmp % 7;
- light_mode_blink_cfg(&g_light_info, &base_clr[s_strobe_color_ind], 1, 5, g_light_para.speed, g_light_para.bright);
-
- }
- break;
- case RC_MODE_FADE:
- {
- static uint8_t s_fade_color_ind = 0;
- cnt_tmp = ++s_fade_color_ind;
- s_fade_color_ind =cnt_tmp % 2;
- if (s_fade_color_ind)
- {
- light_mode_breath_cfg(&g_light_info, &rc_clr_smooth[0], 7, g_light_para.speed, g_light_para.bright);
- }
- else
- {
- light_mode_breath_cfg(&g_light_info, &base_clr[0], 3, g_light_para.speed, g_light_para.bright);
- }
-
- }
- break;
- case RC_MODE_SMOOTH:
- {
- light_mode_gradual_cfg(&g_light_info, rc_clr_smooth, 7, g_light_para.speed, g_light_para.bright);
- }
- break;
- default:
- {
-
- }
- break;
- }
- }
- /********************************* ir_decode **********************************/
- #include "u_time.h"
- void ir_decode(const uint8_t *ir_code)
- {
- #define RC_USER_CODE_0 (0x00)
- // #define RC_USER_CODE_1 (0xFF) //
- #define RC_USER_CODE_1 (0xEF)
- #define RC_USER_CODE_2 (0x7F)
-
- if (ir_code[0] == RC_USER_CODE_0 && (ir_code[1] == RC_USER_CODE_1 || ir_code[1] == RC_USER_CODE_2))
- {
- if (ir_code[2] == (~ir_code[3] & 0xff))
- {
- //U_UART_PRINTF("ir_code = %02X\n", ir_code[2]);
-
- if (g_light_para.power_st == GLO_DIS && ir_code[2] != RC_CODE_ON)
- {
- return;
- }
- switch(ir_code[2])
- {
- case RC_CODE_UP:
- {
- if (g_light_para.effect == LIGHT_EFFECT_STATIC)
- {
- g_light_para.bright = (g_light_para.bright + 10) >= LIGHT_BRIGHT_MAX ? LIGHT_BRIGHT_MAX : (g_light_para.bright + 10);
- light_bright_ctrl(g_light_para.bright);
-
- }
- else if(g_light_para.effect >= LIGHT_EFFECT_RHYTHM_MIN)
- {
- //rhythm_sensit_ctrl(g_light_para.app_music_mode, -2, 0);
- }
- else
- {
- g_light_para.app_speed = (g_light_para.app_speed + 10) >= LIGHT_APP_SPEED_MAX ? LIGHT_APP_SPEED_MAX : (g_light_para.app_speed + 10);
- light_speed_ctrl(g_light_para.app_speed);
- }
- }
- break;
- case RC_CODE_DOWN:
- {
- if (g_light_para.effect == LIGHT_EFFECT_STATIC)
- {
- g_light_para.bright = (g_light_para.bright - 10) <= LIGHT_BRIGHT_MIN ? LIGHT_BRIGHT_MIN : (g_light_para.bright - 10);
- light_bright_ctrl(g_light_para.bright);
- }
- else if(g_light_para.effect >= LIGHT_EFFECT_RHYTHM_MIN)
- {
- //rhythm_sensit_ctrl(g_light_para.app_music_mode, -2, 0);
- }
- else
- {
- g_light_para.app_speed = (g_light_para.app_speed - 10) < LIGHT_SPEED_MIN ? LIGHT_SPEED_MIN : (g_light_para.app_speed - 10);
- light_speed_ctrl(g_light_para.app_speed);
- }
- }
- break;
- case RC_CODE_OFF:
- {
- light_power_set(GLO_DIS);
- light_state_upload();
- }
- break;
-
- case RC_CODE_ON:
- {
- light_power_set(GLO_EN);
- light_state_upload();
- }
- break;
-
- case RC_CODE_FLASH:
- {
- rc_mode_enter(RC_MODE_FLASH);
- }
- break;
- case RC_CODE_STROBE:
- {
- rc_mode_enter(RC_MODE_STROBE);
- }
- break;
- case RC_CODE_FADE:
- {
- rc_mode_enter(RC_MODE_FADE);
- }
- break;
- case RC_CODE_SMOOTH:
- {
- rc_mode_enter(RC_MODE_SMOOTH);
- }
- break;
-
- case RC_CODE_COLOR_R:
- {
- rc_mode_enter(RC_MODE_COLOR_R);
- }
- break;
- case RC_CODE_COLOR_G:
- {
- rc_mode_enter(RC_MODE_COLOR_G);
- }
- break;
- case RC_CODE_COLOR_B:
- {
- rc_mode_enter(RC_MODE_COLOR_B);
- }
- break;
- case RC_CODE_W:
- {
- rc_mode_enter(RC_MODE_COLOR_W);
- }
- break;
-
- case RC_CODE_COLOR_1:
- {
- rc_mode_enter(RC_MODE_COLOR_1);
- }
- break;
- case RC_CODE_COLOR_2:
- {
- rc_mode_enter(RC_MODE_COLOR_2);
- }
- break;
- case RC_CODE_COLOR_3:
- {
- rc_mode_enter(RC_MODE_COLOR_3);
- }
- break;
- case RC_CODE_COLOR_4:
- {
- rc_mode_enter(RC_MODE_COLOR_4);
- }
- break;
- case RC_CODE_COLOR_5:
- {
- rc_mode_enter(RC_MODE_COLOR_5);
- }
- break;
- case RC_CODE_COLOR_6:
- {
- rc_mode_enter(RC_MODE_COLOR_6);
- }
- break;
- case RC_CODE_COLOR_7:
- {
- rc_mode_enter(RC_MODE_COLOR_7);
- }
- break;
- case RC_CODE_COLOR_8:
- {
- rc_mode_enter(RC_MODE_COLOR_8);
- }
- break;
- case RC_CODE_COLOR_9:
- {
- rc_mode_enter(RC_MODE_COLOR_9);
- }
- break;
- case RC_CODE_COLOR_10:
- {
- rc_mode_enter(RC_MODE_COLOR_10);
- }
- break;
- case RC_CODE_COLOR_11:
- {
- rc_mode_enter(RC_MODE_COLOR_11);
- }
- break;
- case RC_CODE_COLOR_12:
- {
- rc_mode_enter(RC_MODE_COLOR_12);
- }
- break;
- }
- light_info_save_set();
- }
- }
-
- }
- /********************************* ir_decode end **********************************/
- uint8_t rgb_line_order_check(void)
- {
- uint8_t order_err = 0;
-
- if (g_light_para.rgb_order[0] == 0)
- {
- if ((g_light_para.rgb_order[1] == 1 && g_light_para.rgb_order[2] == 2) || (g_light_para.rgb_order[2] == 1 && g_light_para.rgb_order[1] == 2))
- {
- order_err = 1;
- }
- else
- {
- order_err = 0;
- }
- }
- else if (g_light_para.rgb_order[0] == 1)
- {
- if ((g_light_para.rgb_order[1] == 0 && g_light_para.rgb_order[2] == 2) || (g_light_para.rgb_order[2] == 0 && g_light_para.rgb_order[1] == 2))
- {
- order_err = 1;
- }
- else
- {
- order_err = 0;
- }
- }
- else if (g_light_para.rgb_order[0] == 2)
- {
- if ((g_light_para.rgb_order[1] == 0 && g_light_para.rgb_order[2] == 1) || (g_light_para.rgb_order[2] == 0 && g_light_para.rgb_order[1] == 1))
- {
- order_err = 1;
- }
- else
- {
- order_err = 0;
- }
- }
- else
- {
- order_err = 0;
- }
-
- if (order_err == 0)
- {
- g_light_para.rgb_order[0] = 0;
- g_light_para.rgb_order[1] = 1;
- g_light_para.rgb_order[2] = 2;
- }
- U_UART_PRINTF("order_err = %d\n", order_err);
-
- return order_err;
- }
- /********************************* app_ctrl end **********************************/
- /********************************* flash_save **********************************/
- #include "u_time.h"
- #define FLASH_SAVE_BASE_ADDR (0x27800)
- #define FLASH_SAVE_FLAG (0x5A)
- extern AlarmTime_t m_alarm_cfg[2]; //3个闹钟结构体定义
- void flash_printf(void)
- {
- // U_UART_PRINTF("save_flag = %d, clr_data = %d, effect = %d\n", \
- // g_light_para.save_flag, m_app_colour_info.clr_data[0], m_app_mode_info[0].effect);
- //
- // U_UART_PRINTF("dow_st = %d, alarm_st = %d\n", \
- // m_count_down.alarm_state, m_alarm_cfg[0].alarm_state);
- }
- static uint32_t flash_offset_addr_set(uint32_t data_size)
- {
- if (data_size % 4 == 0)
- {
- return data_size;
-
- }
- else
- {
- return data_size + (4 - (data_size % 4));
- }
- }
- /********************************* flash_save **********************************/
- #include "user_driver.h"
- //#define BT_LIGHT_FLASH_ADDR (0x7f000)
- #define BT_LIGHT_FLASH_ADDR (0x3f000) //芯片最后一次扇区
- static uint8_t m_flash_save_flg = 0;
- void light_info_save_set(void)
- {
- m_flash_save_flg = 1;
- }
- void light_info_save(void)
- {
- //flash_set_line_mode(1);
- flash_erase_sector(BT_LIGHT_FLASH_ADDR);
- flash_write_data((uint8_t *)&g_light_para, BT_LIGHT_FLASH_ADDR , sizeof(LightPara_t));
- U_UART_PRINTF("save_ok\r\n");
- //flash_set_line_mode(4);
- }
- void light_flash_save_cb(void)
- {
- if (m_flash_save_flg)
- {
- m_flash_save_flg = 0;
- light_info_save();
- }
- }
- /********************************* flash_save end **********************************/
- void light_info_init(void)
- {
- //flash_set_line_mode(1);
- flash_read_data((uint8_t *)&g_light_para, BT_LIGHT_FLASH_ADDR , sizeof(LightPara_t));
- delay_us(20);
- //flash_set_line_mode(4);
-
- if (g_light_para.save_flag == FLASH_SAVE_FLAG)
- {
- //flash_printf();
- }
- else
- {
- U_UART_PRINTF("flash_init\n");
- memset(&g_light_para, 0, sizeof(LightPara_t));
- g_light_para.save_flag = FLASH_SAVE_FLAG;
- g_light_para.power_st = GLO_EN;
- g_light_para.bright = LIGHT_BRIGHT_MAX;
- g_light_para.speed = LIGHT_DEF_SPEED;
- g_light_para.rhythm_sensit = 25;
- g_light_para.app_speed = 109 - LIGHT_DEF_SPEED * 10;
- g_light_para.app_mode[0] = LIGHT_APP_MODE_COLORUR;
- g_light_para.app_mode[1] = 0x01;
- g_light_para.clr_temp[0] = 0xFF;
- g_light_para.clr_temp[1] = 0x00;
- g_light_para.clr_temp[2] = 0x00;
- g_light_para.rgb_order[0] = 0;
- g_light_para.rgb_order[1] = 1;
- g_light_para.rgb_order[2] = 2;
-
- light_info_save();
- }
- g_light_para.rebootCnt++;
- rgb_line_order_check();
- U_UART_PRINTF("\r\napp_mode = %02X, rc_mode = %d reboot:%d\r\n", g_light_para.app_mode[0], g_light_para.rc_mode,g_light_para.rebootCnt);
- light_power_set(g_light_para.power_st);
- light_info_save();
- //U_UART_PRINTF("size:%d\r\n",sizeof(g_light_para));
- }
- /********************************* flash_save end **********************************/
- #endif
|