#define F_CPU 8000000UL #include #include #define PATTERN_COUNT 4 typedef struct { unsigned char r; unsigned char g; unsigned char b; int time_hold; }rgbval; void toogletimer() { static timer=1; if(timer==0) { TCCR0A &= ~((1<0) { //Visual feedback "mode change" for(i3=0;i30) { if(r < pattern[i2][i+1].r) {r++;} if(r > pattern[i2][i+1].r) {r--;} if(g < pattern[i2][i+1].g) {g++;} if(g > pattern[i2][i+1].g) {g--;} if(b < pattern[i2][i+1].b) {b++;} if(b > pattern[i2][i+1].b) {b--;} OCR0A = g;//green OCR0B = r;//red OCR1B = b;//blue _delay_ms(10); if(r == pattern[i2][i+1].r && g == pattern[i2][i+1].g && b == pattern[i2][i+1].b) break; } } } } return 0; }