#include "mbed.h" #include "FastPWM.h" Serial pc(USBTX, USBRX); // tx, rx FastPWM fastSquareWave(p26); double T = .005; double pWidth = .0025; double changeFactor = .001; double smallChangeFactor = .0000001; double largeChangeFactor = .01; double origT = .005; double origPWidth = .5 * origT; int main() { fastSquareWave.period(T); fastSquareWave.pulsewidth(pWidth); pc.printf("Press 'u' to turn LED1 brightness up, 'd' to turn it down\n"); while(1) { char c = pc.getc(); // standard change factor if((c == 'u')) { T -= changeFactor; pWidth = .5 * T; } if((c == 'd')) { T += changeFactor; pWidth = .5 * T; } // small change factor if((c == 'q')) { T -= smallChangeFactor; pWidth = .5 * T; } if((c == 'w')) { T += smallChangeFactor; pWidth = .5 * T; } // large change factor if((c == 'e')) { T -= largeChangeFactor; pWidth = .5 * T; } if((c == 'r')) { T += largeChangeFactor; pWidth = .5 * T; } if(T < 0.001) { pc.printf("Too low, use larger change factor\n"); T = origT; pWidth = origPWidth; } double currentFreq = 1 / T; pc.printf("Current Frequency: %f Period: %f\n", currentFreq, T); fastSquareWave.period(T); fastSquareWave.pulsewidth(pWidth); } }