pwm recibe la entrada del pid y varia el ciclo de trabajo y = 2.5x - 1.5 presion dice si esta lleno o que se yo (actualizar valores)
Fork of PWM by
Diff: main.cpp
- Revision:
- 0:647746eea42d
- Child:
- 1:778a662bafcf
diff -r 000000000000 -r 647746eea42d main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Jan 04 22:12:46 2015 +0000 @@ -0,0 +1,80 @@ +#include "mbed.h" + +PwmOut pwm1(PTB0); +PwmOut pwmLED(LED_RED); +Serial pc(USBTX,USBRX); + +uint16_t periodPWM1 = 1; +uint16_t periodPWMLED =1; +float dutyPWM1 = 0; +float dutyPWMLED = 0; + +void rxInterrupt() +{ + + switch(pc.getc()) { + + case 'a': + + periodPWM1++; + periodPWMLED++; + + pwm1.period_ms(periodPWM1); + pwmLED.period_ms(periodPWMLED); + + + + break; + + case 's': + + if (periodPWM1>1) { + periodPWM1--; + periodPWMLED--; + } + + pwm1.period_ms(periodPWM1); + pwmLED.period_ms(periodPWMLED); + + break; + + case 'f': + + if (dutyPWM1<1) { + dutyPWM1 = dutyPWM1 + 0.05 ; + dutyPWMLED = dutyPWMLED + 0.05; + } + + pwm1.write(dutyPWM1); + pwmLED.write(dutyPWMLED); + + break; + + + case 'g': + + if (dutyPWM1>0) { + dutyPWM1 = dutyPWM1 - 0.05 ; + dutyPWMLED = dutyPWMLED - 0.05; + } + + pwm1.write(dutyPWM1); + pwmLED.write(dutyPWMLED); + + break; + + default: break; + } + + pc.printf("Period (ms): %i, Duty: %.2f \r\n", periodPWM1,dutyPWM1); + +} + +int main() +{ + + pc.baud(115200); + pc.attach(&rxInterrupt); + + while(1); +}