PWM Output

Dependencies:   mbed

Committer:
ccschneider
Date:
Thu Oct 18 13:52:25 2018 +0000
Revision:
0:efa0dd52a0d8
PWM;

Who changed what in which revision?

UserRevisionLine numberNew 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 }