67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
#define F_CPU 16000000UL
|
|
|
|
#include<util/delay.h>
|
|
#include<avr/io.h>
|
|
#include"fix_fft.h"
|
|
#include"avr_adc.h"
|
|
#include"light_ws2812_AVR/Light_WS2812/ws2812_config.h"
|
|
#include"light_ws2812_AVR/Light_WS2812/light_ws2812.h"
|
|
|
|
|
|
#define STARTADC ADCSRA |= _BS(ADSC)
|
|
#define PB_mic PB0
|
|
|
|
int main (void)
|
|
{
|
|
int i;
|
|
int colorb;
|
|
char sample[128];
|
|
char im[128];
|
|
struct cRGB led_bar1[8];
|
|
//DDRB = (1<<mic);//would be setting output, default is input so no need for setting
|
|
setupADC();
|
|
for(i=0;i<8;i++)
|
|
{
|
|
led_bar1[i].r=0;
|
|
led_bar1[i].g=0;
|
|
led_bar1[i].b=0;
|
|
}
|
|
|
|
while(1)
|
|
{
|
|
//######RECORD SAMPLES#######
|
|
for(i=0;i<128;i++)
|
|
{
|
|
sample[i] = ADCH; //read Analog value register 8bit
|
|
im[i]=0; //pseudo data for funciton
|
|
}
|
|
fix_fft(sample,im,7,0);//im[i] is always zero
|
|
|
|
for(i=0;i<8;i++)
|
|
{
|
|
for(colorb=0;colorb<256;colorb++)
|
|
{
|
|
led_bar1[i].r=10;led_bar1[i].g=colorb;led_bar1[i].b=0;
|
|
ws2812_sendarray((uint8_t *)led_bar1,8*3);
|
|
_delay_ms(1);
|
|
|
|
}
|
|
for(colorb=256;colorb>0;colorb--)
|
|
{
|
|
led_bar1[i].r=10;led_bar1[i].g=colorb;led_bar1[i].b=0;
|
|
ws2812_sendarray((uint8_t *)led_bar1,8*3);
|
|
_delay_ms(1);
|
|
|
|
}
|
|
led_bar1[0].r=0;led_bar1[0].g=100;led_bar1[0].b=10;
|
|
ws2812_sendarray((uint8_t *)led_bar1,8*3);
|
|
_delay_ms(50);
|
|
led_bar1[0].r=255;led_bar1[0].g=0;led_bar1[0].b=10;
|
|
ws2812_sendarray((uint8_t *)led_bar1,8*3);
|
|
|
|
}
|
|
|
|
}
|
|
return 0;
|
|
}
|