Cecilia Schneider
/
schneider_hw_4
PWM Output
main.cpp@0:efa0dd52a0d8, 2018-10-18 (annotated)
- Committer:
- ccschneider
- Date:
- Thu Oct 18 13:52:25 2018 +0000
- Revision:
- 0:efa0dd52a0d8
PWM;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ccschneider | 0:efa0dd52a0d8 | 1 | // Cecilia Schneider, OCE 360, September 9,2018 |
ccschneider | 0:efa0dd52a0d8 | 2 | // HW #4, PWM Output |
ccschneider | 0:efa0dd52a0d8 | 3 | #include "mbed.h" |
ccschneider | 0:efa0dd52a0d8 | 4 | AnalogOut Aout(p18); //oscilliscope on pin 18 |
ccschneider | 0:efa0dd52a0d8 | 5 | AnalogIn Ain(p20); //potentiometer on pin 20 |
ccschneider | 0:efa0dd52a0d8 | 6 | DigitalIn Sin(p7); //switch on pin 7 |
ccschneider | 0:efa0dd52a0d8 | 7 | PwmOut PWM1(p21); |
ccschneider | 0:efa0dd52a0d8 | 8 | PwmOut led(LED1); |
ccschneider | 0:efa0dd52a0d8 | 9 | float ADCin; |
ccschneider | 0:efa0dd52a0d8 | 10 | float Switchin; |
ccschneider | 0:efa0dd52a0d8 | 11 | float i; |
ccschneider | 0:efa0dd52a0d8 | 12 | float j; |
ccschneider | 0:efa0dd52a0d8 | 13 | |
ccschneider | 0:efa0dd52a0d8 | 14 | int main() { |
ccschneider | 0:efa0dd52a0d8 | 15 | while(1) { |
ccschneider | 0:efa0dd52a0d8 | 16 | ADCin = Ain; // |
ccschneider | 0:efa0dd52a0d8 | 17 | if (Sin == 1) { |
ccschneider | 0:efa0dd52a0d8 | 18 | Switchin = 1; //when the switch is on, the amplitude will be 1 |
ccschneider | 0:efa0dd52a0d8 | 19 | } |
ccschneider | 0:efa0dd52a0d8 | 20 | else if (Sin == 0) { |
ccschneider | 0:efa0dd52a0d8 | 21 | Switchin = 0.5; //when the switch is off, the amplitude will be 0.5 |
ccschneider | 0:efa0dd52a0d8 | 22 | } |
ccschneider | 0:efa0dd52a0d8 | 23 | for (i=0;i<Switchin;i=i+0.001) { |
ccschneider | 0:efa0dd52a0d8 | 24 | Aout=i; |
ccschneider | 0:efa0dd52a0d8 | 25 | PWM1=i; |
ccschneider | 0:efa0dd52a0d8 | 26 | wait(0.001*ADCin); //allows user to control frequency with potentiometer |
ccschneider | 0:efa0dd52a0d8 | 27 | } |
ccschneider | 0:efa0dd52a0d8 | 28 | for (j=Switchin;j>0;j=j-0.001) { |
ccschneider | 0:efa0dd52a0d8 | 29 | Aout=j; |
ccschneider | 0:efa0dd52a0d8 | 30 | PWM1=j; |
ccschneider | 0:efa0dd52a0d8 | 31 | wait(0.001*ADCin); |
ccschneider | 0:efa0dd52a0d8 | 32 | } |
ccschneider | 0:efa0dd52a0d8 | 33 | } |
ccschneider | 0:efa0dd52a0d8 | 34 | } |