using PWM outputs after setting the value, is there a way to read what was sent?

I still can't see why one would use

byte analogOutputReadPWM(uint8_t pin){
    byte val;
    switch(digitalPinToTimer(pin)) // returns timer location if it is on a timer see NOT_ON_TIMER 
    {
            // XXX fix needed for atmega8
            #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__)
            case TIMER0A:
                    val = OCR0;  // get pwm duty
                    break;
            #endif

            #if defined(TCCR0A) && defined(COM0A1)
            case TIMER0A:
                    val = OCR0A; // get pwm duty
                    break;
            #endif

            #if defined(TCCR0A) && defined(COM0B1)
            case TIMER0B:
                    val = OCR0B; // get pwm duty
                    break;
            #endif

            #if defined(TCCR1A) && defined(COM1A1)
            case TIMER1A:
                    val = OCR1A; // get pwm duty
                    break;
            #endif

            #if defined(TCCR1A) && defined(COM1B1)
            case TIMER1B:
                    val = OCR1B; // get pwm duty
                    break;
            #endif

            #if defined(TCCR2) && defined(COM21)
            case TIMER2:
                    val = OCR2; // get pwm duty
                    break;
            #endif

            #if defined(TCCR2A) && defined(COM2A1)
            case TIMER2A:
                    val = OCR2A; // get pwm duty
                    break;
            #endif

            #if defined(TCCR2A) && defined(COM2B1)
            case TIMER2B:
                    val = OCR2B; // get pwm duty
                    break;
            #endif

            #if defined(TCCR3A) && defined(COM3A1)
            case TIMER3A:
                    val = OCR3A; // get pwm duty
                    break;
            #endif

            #if defined(TCCR3A) && defined(COM3B1)
            case TIMER3B:
                    val = OCR3B; // get pwm duty
                    break;
            #endif

            #if defined(TCCR3A) && defined(COM3C1)
            case TIMER3C:
                    val = OCR3C; // get pwm duty
                    break;
            #endif

            #if defined(TCCR4A)
            case TIMER4A:
                    val = OCR4A; // get pwm duty
                    break;
            #endif

            #if defined(TCCR4A) && defined(COM4B1)
            case TIMER4B:
                    val = OCR4B; // get pwm duty
                    break;
            #endif

            #if defined(TCCR4A) && defined(COM4C1)
            case TIMER4C:
                    val = OCR4C; // get pwm duty
                    break;
            #endif

            #if defined(TCCR4C) && defined(COM4D1)
            case TIMER4D:				
                    val = OCR4D; // get pwm duty
                    break;
            #endif


            #if defined(TCCR5A) && defined(COM5A1)
            case TIMER5A:
                    val = OCR5A; // get pwm duty
                    break;
            #endif

            #if defined(TCCR5A) && defined(COM5B1)
            case TIMER5B:
                    val = OCR5B; // get pwm duty
                    break;
            #endif

            #if defined(TCCR5A) && defined(COM5C1)
            case TIMER5C:
                    val = OCR5C; // get pwm duty
                    break;
            #endif

            case NOT_ON_TIMER:
            default:
                    val = digitalRead(pin);
    }
    return(val);
}

in preference to

int myPwmVal = nnn;
  • probably because I'm strange ...

By the way I wasn't expecting any response to my comment about Ajax.

...R