#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; int main (void) { // (2) rgbval pattern[6][PATTERN_COUNT]={ {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}}, {{1,1,1,1}, {1,1,153,2}, {200,50,39,1}, {204,255,153,2}}, /*rgbval pattern2[PATTERN_COUNT]=*/{{1,1,1,1}, {10,255,0,1}, {1,1,255,2}, {1,200,1,2}}, /*rgbval pattern3[PATTERN_COUNT]=*/{{1,1,5,1}, {1,1,255,1}, {1,1,5,1}, {1,1,255,1}}, {{252,102,3,1}, {161,67,47,1}, {118,120,74,1}, {83,120,74,2}}, {{87,119,122,1}, {95,87,122,1}, {52, 69, 56,1}, {83, 84, 72,1}}}; //rgbval *pattern=pattern1[0]; int i=0,i2=0,i3; int r,g,b = 0; int set=0; int input=0; //system_clock prescaler //#######OC0A auf ausgang DDRB = (1 << PB0 )|(1< 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; }