#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[3][PATTERN_COUNT]={{{1,1,1,1000},{1,1,153,2000}, {200,50,39,1000}, {204,255,153,2000}}, /*rgbval pattern2[PATTERN_COUNT]=*/{{1,1,1,1000}, {10,255,0,1000}, {1,1,255,2000}, {1,200,1,2000}}, /*rgbval pattern3[PATTERN_COUNT]=*/{{1,1,5,1000}, {1,1,255,1000}, {1,1,5,1000}, {1,1,255,1000}}}; //rgbval *pattern=pattern1[0]; int i=0,i2=0,i3; int r,g,b = 0; int set=0; int input=0; //#######OC0A auf ausgang DDRB = (1 << PB0 )|(1<2) { i2=0; } for(i3=0;i3<5;i3++) { OCR0A=1;OCR0B=1;OCR1B=1; _delay_ms(30); OCR0A=255;OCR0B=255;OCR1B=255; _delay_ms(30); } } else if((input & (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; }