...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;
}
}
|