micro:bit / PWM / デューティを極端に頻繁に切り換えると glitch が出る / mbed

#include "MicroBit.h"
MicroBit uBit;

int main(void){
    uBit.init();
    
    double periodUs = 50.0;
    double puseWidth1 = 10.0;
    double puseWidth2 = 40.0;
    
    uBit.io.P0.setAnalogValue(int(1023.0*puseWidth1/periodUs));
    uBit.io.P0.setAnalogPeriodUs(int(periodUs));
    
    volatile int i;
    while(1){
        for(i=0;i<100;i++){}
        uBit.io.P0.setAnalogValue(int(1023.0*puseWidth1/periodUs));
        for(i=0;i<100;i++){}
        uBit.io.P0.setAnalogValue(int(1023.0*puseWidth2/periodUs));
    }
    
    release_fiber();
    return 0;
}

f:id:ti-nspire:20180525115301p:plain:w400