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.
SoftPdmOut Class Reference
Class to use software defined Pulse Density Modulation (PDM). More...
#include <SoftPdmOut.h>
Public Member Functions | |
| SoftPdmOut (PinName pdm, uint32_t PulseWidth=500, uint32_t Dmax=64, float StartLevel=0) | |
| Create a PDM object connected to a digital pin. | |
| void | start (void) |
| Start the PDM. | |
| void | stop (bool idleState=0) |
| Stop the PDM. | |
| void | PulseWidth (uint32_t level) |
| Change the pulse width. | |
| uint32_t | getPulseWidth (void) |
| Read the pulse width. | |
| void | Dmax (uint32_t level) |
| Change the total number of states in the DAC output (DMAX). | |
| uint32_t | getDmax (void) |
| Read the total number of states in the DAC output (DMAX). | |
| void | write (float level) |
| Set the PDM level, specified as a percentage (float). | |
| float | read (void) |
| Return the current PDM level as a percentage (float). | |
| operator float () | |
| An operator shorthand for read() | |
| SoftPdmOut & | operator= (float value) |
| An operator shorthand for write() | |
Detailed Description
Class to use software defined Pulse Density Modulation (PDM).
'pdm' pin can be any digital pin.
//Example //------- #include "mbed.h" #include "SoftPdmOut.h" SoftPdmOut pdm(LED1); int main() { float pdmSet = 0.0f; float pdmAdd = 0.01f; // Continuously cycle the output while(1) { pdm = pdmSet; wait_ms(10); if(pdmSet >= 1.0f) pdmAdd = -0.01f; if(pdmSet <= 0.0f) pdmAdd = 0.01f; pdmSet += pdmAdd; } }
Definition at line 47 of file SoftPdmOut.h.
Constructor & Destructor Documentation
| SoftPdmOut | ( | PinName | pdm, |
| uint32_t | PulseWidth = 500, |
||
| uint32_t | Dmax = 64, |
||
| float | StartLevel = 0 |
||
| ) |
Create a PDM object connected to a digital pin.
- Parameters:
-
pdm : Digital pin. PulseWidth : Optional - The desired pulse width in microseconds (default = 500us). Dmax : Optional - This is the total number of states in the DAC output (default = 64). StartLevel : Optional - The DAC percentage (0.0 to 1.0) to be preprogrammed upon initialization (default = 0).
- Returns:
- none
Definition at line 12 of file SoftPdmOut.cpp.
Member Function Documentation
| void Dmax | ( | uint32_t | level ) |
Change the total number of states in the DAC output (DMAX).
- Parameters:
-
level : The desired max. level.
- Returns:
- none.
Definition at line 59 of file SoftPdmOut.cpp.
| uint32_t getDmax | ( | void | ) |
Read the total number of states in the DAC output (DMAX).
- Parameters:
-
none.
- Returns:
- current DMAX value.
Definition at line 66 of file SoftPdmOut.cpp.
| uint32_t getPulseWidth | ( | void | ) |
Read the pulse width.
- Parameters:
-
none.
- Returns:
- current PulseWidth value
Definition at line 54 of file SoftPdmOut.cpp.
| operator float | ( | ) |
An operator shorthand for read()
Definition at line 84 of file SoftPdmOut.cpp.
| SoftPdmOut & operator= | ( | float | value ) |
An operator shorthand for write()
Definition at line 89 of file SoftPdmOut.cpp.
| void PulseWidth | ( | uint32_t | level ) |
Change the pulse width.
- Parameters:
-
level : The desired pulse width in microseconds.
- Returns:
- none
Definition at line 42 of file SoftPdmOut.cpp.
| float read | ( | void | ) |
Return the current PDM level as a percentage (float).
- Parameters:
-
none
- Returns:
- level
Definition at line 79 of file SoftPdmOut.cpp.
| void start | ( | void | ) |
| void stop | ( | bool | idleState = 0 ) |
Stop the PDM.
- Parameters:
-
idleState (optional, allows the user to define the idle state - default = 0)
- Returns:
- none
Definition at line 32 of file SoftPdmOut.cpp.
| void write | ( | float | level ) |
Set the PDM level, specified as a percentage (float).
- Parameters:
-
level
- Returns:
- none
Definition at line 71 of file SoftPdmOut.cpp.
Generated on Wed Jul 20 2022 00:19:18 by
1.7.2