Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of shomberg_hw_5 by
main.cpp
- Committer:
- rshomberg
- Date:
- 2018-10-11
- Revision:
- 5:dbd163551a58
- Parent:
- 4:098e3d869055
- Child:
- 6:8cfa0216554f
File content as of revision 5:dbd163551a58:
/** MBED Analug Output Triangle Wave and PWM Wave main.cpp Purpose: Output a triangle waveform Output a PWM Signal of same frequency Adjust LED1 brightness with PWM Signal Adjust frequency using variable resistor Adjust amplitude using switch @author Russell Shomberg @version 1.0 2018-10-04 Issues: Frequency and amplitude only change at the start of the waveform by design */ // INCLUDES #include "mbed.h" // INPUTS DigitalIn switchPosition(p7); // wire p7 to middle connection of 2 position switch between Vref and GND AnalogIn Ain(p20); // wire p20 to a variable resister connected from Vref and GND // OUTPUTS Serial pc(USBTX, USBRX); // for debugging AnalogOut Aout(p18); // leave open lead on p18 for signal output PwmOut myled(LED1); PwmOut mypwm(p21); // VARIABLES float period; // range between ~0 and 1 (seconds) float pwmfreq; // switch between 1 and -.5 float i; // index int main() { while(1) { // Check settings at start of loop which are changed with period = Ain; if (switchPosition==1) {pwmfreq = 1*period;} else {pwmfreq = .5*period;} // Debugging code //printf("PWM Frequency = %1.2f Hz\n\r", pwmfreq); //printf("Analog Period = %1.2f seconds\n\r", period); //mypwm.period(period); //mypwm = pwmfreq; for (i=0;i<1;i=i+.001){ myled = 1-i; mypwm = 1-i; Aout = i; wait(0.001*period); } for (i=1;i>0;i=i-.001){ Aout = i; myled = 1-i; mypwm = 1-i; wait(0.001*period); } } }