Driver for Diving Flashlite

Why would you want to read a PWM pin?
Its value won't have changed from the value you last wrote to it (hint)

    switch (state)
    {
      case 0:
        whiteLevel = 0;
        blueLevel = 0;
      break;
      case 1:
        whiteLevel = (30 * 255) / 100;
        blueLevel = 0;
      break;
      case 2:
        whiteLevel = (75 * 255) / 100;
        blueLevel = 0;
      break;
      case 3:
        whiteLevel = 255;
        blueLevel = 0;
      break;
      case 4:
        whiteLevel = 0;
        blueLevel = 255;
      break;
    }
    analogWrite(ledPinwhite, whiteLevel);
    analogWrite(ledPinblue, blueLevel);

is an almost literal translation of

  • ...off
  • White on 30% (blue off)
  • White on 75 % (blue off)
  • White on 100% (blue off)
  • blue on 100% (White off)