本帖最后由 littleshrimp 于 2015-4-14 14:15 编辑
这是一个求婚必备的神器?
想象一下,你和你相处多年的女朋友两人走进一间黑屋,屋里没有一点声音,当你牵着女朋友的手走到黑屋的中央,音乐渐渐响起,灯光随音乐舞动。
你转过身,面向你的女朋友,握起她的双手,注视着对方,伴随着《咱们结婚吧》这首音乐,你勇敢的对她说:嫁给我,好吗?
只见一只温柔的小手划过舞动的灯光,渐渐的离你越来越近,最后只听“啪”的一声,打在了你的左脸,随后音乐由《咱们结婚吧》马上切换到《小苹果》,你被你的女朋友拉到舞池中央,伴随着欢快的音乐一起摇啊摇啊摇啊摇,忘记了左脸的掌印,也忘记了刚刚说过的“玩笑”。
这是一个很垃圾的代码,乱写的,自己看不过去,这也是为什么音乐从《咱们结婚吧》切到《小苹果》的原因,不过好在功能实现了。
- while (1) {
- adc_red_buff(fftInput,fftSize);
- //对上一次数据做FFT
- fft_test(fftInput,fftOutput,fftSize);
- //高低音清零
- lavg = havg = 0;
- getMax1(&fftOutput[1],fftSize/4-1,maxIndexArray,maxValueArray,MAX_COUNT);
- for(i=0;i<MAX_COUNT;i++)
- {
- //得到高音数据
- lavg += maxValueArray[i] / (halfFftSize);
- }
- getMax1(&fftOutput[fftSize/4-1],fftSize/4-1,maxIndexArray,maxValueArray,MAX_COUNT);
- for(i=0;i<MAX_COUNT;i++)
- {
- //得到低音数据
- havg += maxValueArray[i] / (halfFftSize);
- }
- //根据高低音设置对应颜色的LED灯
- set_pwm1(lavg-50,(havg-50)*50,4096);
- __NOP();
- }
复制代码- void set_pwm1(float r,float g,float max)
- {
- float perCycle = Chip_SCTPWM_GetTicksPerCycle(SCT_PWM);
- uint32_t rs = perCycle * r / max;
- uint32_t gs = perCycle * g / max;
- Chip_SCTPWM_SetDutyCycle(SCT_PWM, SCT_PWM_OUT,perCycle- gs);
- Chip_SCTPWM_SetDutyCycle(SCT_PWM, SCT_PWM_LED,perCycle- rs);
- }
复制代码