...set-up a bunch of things, including clocks, ISR handles, pins etc, then... while (1) /* Loop forever */ { while(!LPC_GPIO_PORT->W0[ISP_PIN]) ; // wait on ISP button press while (TimeTick <= change_pwm); //wait for the counter to advance TimeTick=0; #ifdef DBG_OUTPUT printf("R=%3d, G=%3d, B=%3d\n\r",red_pwm,green_pwm,blue_pwm); #endif NOTPORT0(PORT0_BIT6); // toggle pin // printf("%2d",color); switch (color) { ... several cases: with breaks, a default, then end of the while(1). |
while (1) /* Loop forever */ { while(!LPC_GPIO_PORT->W0[ISP_PIN]) ;// wait if ISP button pressed while (!TimeTick); TimeTick=0; #ifdef DBG_OUTPUT printf("R=%3d, G=%3d, B=%3d\n\r",red_pwm,green_pwm,blue_pwm); #endif // NOTPORT0(PORT0_BIT6); // printf("%2d",color); switch (color) { case 0: //red if (inc_dec) { if (++red_pwm >= MAX_PWM) inc_dec = FALSE; } else if (--red_pwm == 0) { color++; inc_dec = TRUE; } break; case 1: //green if (inc_dec) { if (++green_pwm >= MAX_PWM) inc_dec = FALSE; } else if (--green_pwm == 0) { color++; inc_dec = TRUE; } break; case 2:// blue if (inc_dec) { if (++blue_pwm >= MAX_PWM) inc_dec = FALSE; } else if (--blue_pwm == 0) { color++; inc_dec = TRUE; } break; case 3:// purple if (inc_dec) { blue_pwm++; red_pwm++; if (blue_pwm >= MAX_PWM) inc_dec = FALSE; } else { blue_pwm--; red_pwm--; if (blue_pwm == 0) { color++; inc_dec = TRUE; } } break; case 4:// yellow? if (inc_dec) { green_pwm++; red_pwm++; if (green_pwm >= MAX_PWM) inc_dec = FALSE; } else { green_pwm--; red_pwm--; if (green_pwm == 0) { color++; inc_dec = TRUE; } } break; case 5:// orange? blue is too weak if (inc_dec) { green_pwm++; blue_pwm++; if (green_pwm >= MAX_PWM) inc_dec = FALSE; } else { green_pwm--; blue_pwm--; if (green_pwm == 0) { color++; inc_dec = TRUE; } } break; case 6:// white if (inc_dec) { red_pwm++; green_pwm++; blue_pwm++; if (green_pwm >= MAX_PWM) inc_dec = FALSE; } else { red_pwm--; green_pwm--; blue_pwm--; if (green_pwm == 0) { color++; inc_dec = TRUE; } } break; default:// clean up (should not be necessary) color = 0; inc_dec = TRUE; red_pwm=0; green_pwm=0; blue_pwm=0; } } |