diff --git a/main.c b/main.c index 9c20380..aa24af7 100644 --- a/main.c +++ b/main.c @@ -15,8 +15,6 @@ typedef struct volatile uint16_t ms; volatile int counts; - - ISR(TIMER0_OVF_vect) { count(); @@ -37,21 +35,16 @@ void count(void) ms=0; } } - } - - - -int main (void) { // (2) - +int main (void) +{ rgbval pattern[6][PATTERN_COUNT]={ {{0,0,0,10}, {0,0,0,10}, {0,0,0,10}, {0,0,0,10}}, {{1,1,1,10}, {1,1,153,20}, {200,50,39,10}, {204,255,153,20}}, {{1,1,1,10}, {10,255,0,10}, {1,1,255,20}, {1,200,1,20}}, {{1,1,5,10}, {1,1,255,10}, {1,1,5,10}, {1,1,255,10}}, {{252,102,3,10}, {161,67,47,10}, {118,120,74,10}, {83,120,74,20}}, {{87,119,122,10}, {95,87,122,10}, {52, 69, 56,10}, {83, 84, 72,10}}}; - //rgbval *pattern=pattern1[0]; int i=0,i2=0,i3; int r,g,b = 0; int set=0; @@ -69,95 +62,79 @@ int main (void) { // (2) //#######Timer0-setup##### |Phase correct pwm TCCR0A = (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 - // :wq - // _delay_ms(10); - pre_delay = ms; - // :wq + set=0; + + } + //Pattern handling + 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); + pre_delay = ms; while((ms-pre_delay) < pattern[i2][i+1].time_hold){}; - - if(r == pattern[i2][i+1].r && g == pattern[i2][i+1].g && b == pattern[i2][i+1].b) break; - } + if(r == pattern[i2][i+1].r && g == pattern[i2][i+1].g && b == pattern[i2][i+1].b) break; + } } - - } - + } return 0; } -