gnuk/ChibiOS_2.0.8/docs/html/group___p_w_m.html
2010-11-30 13:54:43 +09:00

1250 lines
79 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: PWM Driver</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul class="tablist">
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<h1>PWM Driver<br/>
<small>
[<a class="el" href="group___i_o.html">HAL</a>]</small>
</h1> </div>
</div>
<div class="contents">
<p>Generic PWM Driver.
<a href="#_details">More...</a></p>
<p><div class="dynheader">
Collaboration diagram for PWM Driver:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group___p_w_m.png" border="0" alt="" usemap="#group______p__w__m"/>
<map name="group______p__w__m" id="group______p__w__m">
<area shape="rect" id="node1" href="group___i_o.html" title="Hardware Abstraction Layer." alt="" coords="5,8,48,35"/>
<area shape="rect" id="node3" href="group___p_w_m___l_l_d.html" title="PWM Driver low level driver template." alt="" coords="324,8,455,35"/>
</map>
</td></tr></table></center>
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>Generic PWM Driver. </p>
<p>This module implements a generic PWM driver. The driver implements a state machine internally: </p>
<div align="center">
<img src="inline_dotgraph_18.dot.png" alt="inline_dotgraph_18.dot" border="0" usemap="#inline_dotgraph_18.dot.map">
<map name="inline_dotgraph_18.dot.map" id="inline_dotgraph_18.dot.map"></map>
</div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_w_m_channel_config.html">PWMChannelConfig</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM driver channel configuration structure. <a href="struct_p_w_m_channel_config.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_w_m_config.html">PWMConfig</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Driver configuration structure. <a href="struct_p_w_m_config.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Structure representing an PWM driver. <a href="struct_p_w_m_driver.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m___l_l_d.html">PWM Low Level Driver</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><a class="el" href="group___p_w_m.html">PWM Driver</a> low level driver template. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gabe1aa3e76c63f687d918628c57def482">pwmEnableChannelI</a>(pwmp, channel, width)&nbsp;&nbsp;&nbsp;pwm_lld_enable_channel(pwmp, channel, width)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables a PWM channel. <a href="#gabe1aa3e76c63f687d918628c57def482"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gaa15ffc7b909d46929ea3ef8cc903eea3">pwmDisableChannelI</a>(pwmp, channel)&nbsp;&nbsp;&nbsp;pwm_lld_disable_channel(pwmp, channel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables a PWM channel. <a href="#gaa15ffc7b909d46929ea3ef8cc903eea3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga312588cf680d50931666643dea45bb13">PWM_CHANNELS</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of PWM channels per PWM driver. <a href="#ga312588cf680d50931666643dea45bb13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga0fe5257a5ba79302dce9df6d50de9364">USE_STM32_PWM1</a>&nbsp;&nbsp;&nbsp;TRUE</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM1 driver enable switch. <a href="#ga0fe5257a5ba79302dce9df6d50de9364"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gac7e757e9d0af908f7e06ab5221f30aa2">USE_STM32_PWM2</a>&nbsp;&nbsp;&nbsp;TRUE</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM2 driver enable switch. <a href="#gac7e757e9d0af908f7e06ab5221f30aa2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gaf1306b9ade0a6771eaa967feeeb075f3">USE_STM32_PWM3</a>&nbsp;&nbsp;&nbsp;TRUE</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM3 driver enable switch. <a href="#gaf1306b9ade0a6771eaa967feeeb075f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gae2f2fa3291ecf36f8f270efa25d4e044">USE_STM32_PWM4</a>&nbsp;&nbsp;&nbsp;TRUE</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM4 driver enable switch. <a href="#gae2f2fa3291ecf36f8f270efa25d4e044"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gac800997848ce5e6c707372390d945c7c">STM32_PWM1_IRQ_PRIORITY</a>&nbsp;&nbsp;&nbsp;7</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM1 interrupt priority level setting. <a href="#gac800997848ce5e6c707372390d945c7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga0215547b5c9692aa9d6af10e46639f29">STM32_PWM2_IRQ_PRIORITY</a>&nbsp;&nbsp;&nbsp;7</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM2 interrupt priority level setting. <a href="#ga0215547b5c9692aa9d6af10e46639f29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga5dc025c64957640f0bd42460648c835a">STM32_PWM3_IRQ_PRIORITY</a>&nbsp;&nbsp;&nbsp;7</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM3 interrupt priority level setting. <a href="#ga5dc025c64957640f0bd42460648c835a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gafacc8948371fb7804b5c6cbb2a0aacd8">STM32_PWM4_IRQ_PRIORITY</a>&nbsp;&nbsp;&nbsp;7</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM4 interrupt priority level setting. <a href="#gafacc8948371fb7804b5c6cbb2a0aacd8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gafd811fe25f6327c0de0a94a008ab3a40">PWM_COMPUTE_PSC</a>(clksrc, pwmclk)&nbsp;&nbsp;&nbsp;((<a class="el" href="group___s_t_m8___c_o_r_e.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(((clksrc) / (pwmclk)) - 1))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM clock prescaler initialization utility. <a href="#gafd811fe25f6327c0de0a94a008ab3a40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga906648c8c8aed069ab8e3a68c7107eb8">PWM_COMPUTE_ARR</a>(pwmclk, pwmperiod)&nbsp;&nbsp;&nbsp;((<a class="el" href="group___s_t_m8___c_o_r_e.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(((pwmclk) / (1000000000 / (pwmperiod))) - 1))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM cycle period initialization utility. <a href="#ga906648c8c8aed069ab8e3a68c7107eb8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gaaefdcc19e16b2b3d8fad6fbe338e4b02">PWM_FRACTION_TO_WIDTH</a>(pwmp, numerator, denominator)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts from fraction to pulse width. <a href="#gaaefdcc19e16b2b3d8fad6fbe338e4b02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga650e63fde12b02b59a459dbfe7427334">PWM_DEGREES_TO_WIDTH</a>(pwmp, degrees)&nbsp;&nbsp;&nbsp;PWM_FRACTION_TO_WIDTH(pwmp, 36000, degrees)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts from degrees to pulse width. <a href="#ga650e63fde12b02b59a459dbfe7427334"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga4e74ac1c2befb11ff66d218ca8d49531">PWM_PERCENTAGE_TO_WIDTH</a>(pwmp, percentage)&nbsp;&nbsp;&nbsp;PWM_FRACTION_TO_WIDTH(pwmp, 10000, percentage)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts from percentage to pulse width. <a href="#ga4e74ac1c2befb11ff66d218ca8d49531"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___s_t_m8___c_o_r_e.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM channel type. <a href="#ga605a8a67c0f1cf38cecfcfada45b28b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___s_t_m8___c_o_r_e.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gaef1826611f5a65369e9e02d04e81ed61">pwmcnt_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM counter type. <a href="#gaef1826611f5a65369e9e02d04e81ed61"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_p_w_m_driver.html">PWMDriver</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gaa3b607ac7aca4dc59345f779667c74e1">PWMDriver</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type of a structure representing an PWM driver. <a href="#gaa3b607ac7aca4dc59345f779667c74e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga77de6597901387b5b6ecb58613b09b56">pwmcallback_t</a> )(<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM notification callback type. <a href="#ga77de6597901387b5b6ecb58613b09b56"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga9b63d6f4d51e8ca9ee1fce2a1bc86bc5">pwmstate_t</a> { <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5abff5b42e5ab002433b66a8910548b48c">PWM_UNINIT</a> = 0,
<a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a4da638211112ff017325e9472592a151">PWM_STOP</a> = 1,
<a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086">PWM_READY</a> = 2
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Driver state machine possible states. </p>
<a href="group___p_w_m.html#ga9b63d6f4d51e8ca9ee1fce2a1bc86bc5">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gaaa2db6a7be396595dcf16da3f94634a0">pwmmode_t</a> { <a class="el" href="group___p_w_m.html#ggaaa2db6a7be396595dcf16da3f94634a0a36ed95007c3ef01cab4254f099e57b4d">PWM_OUTPUT_DISABLED</a> = 0,
<a class="el" href="group___p_w_m.html#ggaaa2db6a7be396595dcf16da3f94634a0aebf0e802a4bab8825b697f2f7e8346f1">PWM_OUTPUT_ACTIVE_HIGH</a> = 1,
<a class="el" href="group___p_w_m.html#ggaaa2db6a7be396595dcf16da3f94634a0a7a1e4472427e3a352e4837ba5146fcba">PWM_OUTPUT_ACTIVE_LOW</a> = 2
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>PWM logic mode. </p>
<a href="group___p_w_m.html#gaaa2db6a7be396595dcf16da3f94634a0">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga1c8ae46921c4ae7d57bd44dd994e10bd">pwmInit</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PWM Driver initialization. <a href="#ga1c8ae46921c4ae7d57bd44dd994e10bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga4dbf1fded2984ff6dc240afd2e1fcd74">pwmObjectInit</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the standard part of a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> structure. <a href="#ga4dbf1fded2984ff6dc240afd2e1fcd74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga9c14dc1b026c78809440281786aceda3">pwmStart</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp, const <a class="el" href="struct_p_w_m_config.html">PWMConfig</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configures and activates the PWM peripheral. <a href="#ga9c14dc1b026c78809440281786aceda3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga8a4d0d8a47883efe286a332cade14080">pwmStop</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deactivates the PWM peripheral. <a href="#ga8a4d0d8a47883efe286a332cade14080"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gafd6c45693467da77ab13edca8420620d">pwmEnableChannel</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp, <a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a> channel, <a class="el" href="group___p_w_m___l_l_d.html#gaef1826611f5a65369e9e02d04e81ed61">pwmcnt_t</a> width)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables a PWM channel. <a href="#gafd6c45693467da77ab13edca8420620d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#gac2679d11833a4ea9df5a9ed2e4a2c2e7">pwmDisableChannel</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp, <a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a> channel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables a PWM channel. <a href="#gac2679d11833a4ea9df5a9ed2e4a2c2e7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga7cb5729a65c0996584808e4f93b28a0d">pwm_lld_init</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Low level PWM driver initialization. <a href="#ga7cb5729a65c0996584808e4f93b28a0d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga8a4d803d25a5326b48b3713ffd5fce53">pwm_lld_start</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configures and activates the PWM peripheral. <a href="#ga8a4d803d25a5326b48b3713ffd5fce53"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga48b759363af69a6aaee37a362ed5bfd2">pwm_lld_stop</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deactivates the PWM peripheral. <a href="#ga48b759363af69a6aaee37a362ed5bfd2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga8c6320208680a823925d2816856437cc">pwm_lld_enable_channel</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp, <a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a> channel, <a class="el" href="group___p_w_m___l_l_d.html#gaef1826611f5a65369e9e02d04e81ed61">pwmcnt_t</a> width)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enables a PWM channel. <a href="#ga8c6320208680a823925d2816856437cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_w_m.html#ga78cb61d7ea9fc996e3c2adec3f37cfd8">pwm_lld_disable_channel</a> (<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp, <a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a> channel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables a PWM channel. <a href="#ga78cb61d7ea9fc996e3c2adec3f37cfd8"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gabe1aa3e76c63f687d918628c57def482"></a><!-- doxytag: member="pwm.h::pwmEnableChannelI" ref="gabe1aa3e76c63f687d918628c57def482" args="(pwmp, channel, width)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define pwmEnableChannelI</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmp, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">channel, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">width</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;pwm_lld_enable_channel(pwmp, channel, width)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enables a PWM channel. </p>
<p>Programs (or reprograms) a PWM channel. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This function has to be invoked from a lock zone.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>channel</em>&nbsp;</td><td>PWM channel identifier </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>width</em>&nbsp;</td><td>PWM pulse width as clock pulses number </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8h_source.html#l00089">89</a> of file <a class="el" href="pwm_8h_source.html">pwm.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaa15ffc7b909d46929ea3ef8cc903eea3"></a><!-- doxytag: member="pwm.h::pwmDisableChannelI" ref="gaa15ffc7b909d46929ea3ef8cc903eea3" args="(pwmp, channel)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define pwmDisableChannelI</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmp, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">channel</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;pwm_lld_disable_channel(pwmp, channel)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Disables a PWM channel. </p>
<p>The channel is disabled and its output line returned to the idle state. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This function has to be invoked from a lock zone.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>channel</em>&nbsp;</td><td>PWM channel identifier </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8h_source.html#l00101">101</a> of file <a class="el" href="pwm_8h_source.html">pwm.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga312588cf680d50931666643dea45bb13"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWM_CHANNELS" ref="ga312588cf680d50931666643dea45bb13" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PWM_CHANNELS&nbsp;&nbsp;&nbsp;4</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of PWM channels per PWM driver. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00040">40</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga0fe5257a5ba79302dce9df6d50de9364"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::USE_STM32_PWM1" ref="ga0fe5257a5ba79302dce9df6d50de9364" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USE_STM32_PWM1&nbsp;&nbsp;&nbsp;TRUE</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM1 driver enable switch. </p>
<p>If set to <code>TRUE</code> the support for PWM1 is included. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The default is <code>TRUE</code>. </dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00052">52</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gac7e757e9d0af908f7e06ab5221f30aa2"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::USE_STM32_PWM2" ref="gac7e757e9d0af908f7e06ab5221f30aa2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USE_STM32_PWM2&nbsp;&nbsp;&nbsp;TRUE</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM2 driver enable switch. </p>
<p>If set to <code>TRUE</code> the support for PWM2 is included. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The default is <code>TRUE</code>. </dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00061">61</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaf1306b9ade0a6771eaa967feeeb075f3"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::USE_STM32_PWM3" ref="gaf1306b9ade0a6771eaa967feeeb075f3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USE_STM32_PWM3&nbsp;&nbsp;&nbsp;TRUE</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM3 driver enable switch. </p>
<p>If set to <code>TRUE</code> the support for PWM3 is included. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The default is <code>TRUE</code>. </dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00070">70</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gae2f2fa3291ecf36f8f270efa25d4e044"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::USE_STM32_PWM4" ref="gae2f2fa3291ecf36f8f270efa25d4e044" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USE_STM32_PWM4&nbsp;&nbsp;&nbsp;TRUE</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM4 driver enable switch. </p>
<p>If set to <code>TRUE</code> the support for PWM4 is included. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The default is <code>TRUE</code>. </dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00079">79</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gac800997848ce5e6c707372390d945c7c"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::STM32_PWM1_IRQ_PRIORITY" ref="gac800997848ce5e6c707372390d945c7c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define STM32_PWM1_IRQ_PRIORITY&nbsp;&nbsp;&nbsp;7</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM1 interrupt priority level setting. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00086">86</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga8a4d803d25a5326b48b3713ffd5fce53">pwm_lld_start()</a>.</p>
</div>
</div>
<a class="anchor" id="ga0215547b5c9692aa9d6af10e46639f29"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::STM32_PWM2_IRQ_PRIORITY" ref="ga0215547b5c9692aa9d6af10e46639f29" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define STM32_PWM2_IRQ_PRIORITY&nbsp;&nbsp;&nbsp;7</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM2 interrupt priority level setting. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00093">93</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga8a4d803d25a5326b48b3713ffd5fce53">pwm_lld_start()</a>.</p>
</div>
</div>
<a class="anchor" id="ga5dc025c64957640f0bd42460648c835a"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::STM32_PWM3_IRQ_PRIORITY" ref="ga5dc025c64957640f0bd42460648c835a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define STM32_PWM3_IRQ_PRIORITY&nbsp;&nbsp;&nbsp;7</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM3 interrupt priority level setting. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00100">100</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga8a4d803d25a5326b48b3713ffd5fce53">pwm_lld_start()</a>.</p>
</div>
</div>
<a class="anchor" id="gafacc8948371fb7804b5c6cbb2a0aacd8"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::STM32_PWM4_IRQ_PRIORITY" ref="gafacc8948371fb7804b5c6cbb2a0aacd8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define STM32_PWM4_IRQ_PRIORITY&nbsp;&nbsp;&nbsp;7</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM4 interrupt priority level setting. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00107">107</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga8a4d803d25a5326b48b3713ffd5fce53">pwm_lld_start()</a>.</p>
</div>
</div>
<a class="anchor" id="gafd811fe25f6327c0de0a94a008ab3a40"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWM_COMPUTE_PSC" ref="gafd811fe25f6327c0de0a94a008ab3a40" args="(clksrc, pwmclk)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PWM_COMPUTE_PSC</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">clksrc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmclk</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;((<a class="el" href="group___s_t_m8___c_o_r_e.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(((clksrc) / (pwmclk)) - 1))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM clock prescaler initialization utility. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The real clock value is rounded to the lower valid value, please make sure that the source clock frequency is a multiple of the requested PWM clock frequency. </dd>
<dd>
The calculated value must fit into an unsigned 16 bits integer.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>clksrc</em>&nbsp;</td><td>clock source frequency, depending on the target timer cell it can be one of:</p>
<ul>
<li>STM32_TIMCLK1</li>
<li>STM32_TIMCLK2</li>
</ul>
<p>Please refer to the STM32 HAL driver documentation and/or the STM32 Reference Manual for the right clock source. </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmclk</em>&nbsp;</td><td>PWM clock frequency in cycles </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The value to be stored in the <code>pc_psc</code> field of the <code><a class="el" href="struct_p_w_m_config.html" title="Driver configuration structure.">PWMConfig</a></code> structure. </dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00245">245</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga906648c8c8aed069ab8e3a68c7107eb8"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWM_COMPUTE_ARR" ref="ga906648c8c8aed069ab8e3a68c7107eb8" args="(pwmclk, pwmperiod)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PWM_COMPUTE_ARR</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmclk, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmperiod</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;((<a class="el" href="group___s_t_m8___c_o_r_e.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(((pwmclk) / (1000000000 / (pwmperiod))) - 1))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM cycle period initialization utility. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The calculated value must fit into an unsigned 16 bits integer.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmclk</em>&nbsp;</td><td>PWM clock frequency in cycles </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmperiod</em>&nbsp;</td><td>PWM cycle period in nanoseconds </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The value to be stored in the <code>pc_arr</code> field of the <code><a class="el" href="struct_p_w_m_config.html" title="Driver configuration structure.">PWMConfig</a></code> structure. </dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00257">257</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaaefdcc19e16b2b3d8fad6fbe338e4b02"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWM_FRACTION_TO_WIDTH" ref="gaaefdcc19e16b2b3d8fad6fbe338e4b02" args="(pwmp, numerator, denominator)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PWM_FRACTION_TO_WIDTH</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmp, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">numerator, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">denominator</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">((uint16_t)((((<a class="code" href="group___s_t_m8___c_o_r_e.html#ga06896e8c53f721507066c079052171f8">uint32_t</a>)(pwmp)-&gt;pd_config-&gt;pc_arr + 1UL) * \
(<a class="code" href="group___s_t_m8___c_o_r_e.html#ga06896e8c53f721507066c079052171f8">uint32_t</a>)(denominator)) / (uint32_t)(numerator)))
</pre></div>
<p>Converts from fraction to pulse width. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Be careful with rounding errors, this is integer math not magic. You can specify tenths of thousandth but make sure you have the proper hardware resolution by carefully choosing the clock source and prescaler settings, see <code>PWM_COMPUTE_PSC</code>.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>numerator</em>&nbsp;</td><td>numerator of the fraction </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>denominator</em>&nbsp;</td><td>percentage as an integer between 0 and numerator </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The pulse width to be passed to <code><a class="el" href="group___p_w_m.html#gafd6c45693467da77ab13edca8420620d" title="Enables a PWM channel.">pwmEnableChannel()</a></code>.</dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00273">273</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga650e63fde12b02b59a459dbfe7427334"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWM_DEGREES_TO_WIDTH" ref="ga650e63fde12b02b59a459dbfe7427334" args="(pwmp, degrees)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PWM_DEGREES_TO_WIDTH</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmp, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">degrees</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;PWM_FRACTION_TO_WIDTH(pwmp, 36000, degrees)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts from degrees to pulse width. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Be careful with rounding errors, this is integer math not magic. You can specify hundredths of degrees but make sure you have the proper hardware resolution by carefully choosing the clock source and prescaler settings, see <code>PWM_COMPUTE_PSC</code>.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>degrees</em>&nbsp;</td><td>degrees as an integer between 0 and 36000 </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The pulse width to be passed to <code><a class="el" href="group___p_w_m.html#gafd6c45693467da77ab13edca8420620d" title="Enables a PWM channel.">pwmEnableChannel()</a></code>.</dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00290">290</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga4e74ac1c2befb11ff66d218ca8d49531"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWM_PERCENTAGE_TO_WIDTH" ref="ga4e74ac1c2befb11ff66d218ca8d49531" args="(pwmp, percentage)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PWM_PERCENTAGE_TO_WIDTH</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">pwmp, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname">percentage</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;PWM_FRACTION_TO_WIDTH(pwmp, 10000, percentage)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts from percentage to pulse width. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>Be careful with rounding errors, this is integer math not magic. You can specify tenths of thousandth but make sure you have the proper hardware resolution by carefully choosing the clock source and prescaler settings, see <code>PWM_COMPUTE_PSC</code>.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>percentage</em>&nbsp;</td><td>percentage as an integer between 0 and 10000 </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The pulse width to be passed to <code><a class="el" href="group___p_w_m.html#gafd6c45693467da77ab13edca8420620d" title="Enables a PWM channel.">pwmEnableChannel()</a></code>.</dd></dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00306">306</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga605a8a67c0f1cf38cecfcfada45b28b5"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwmchannel_t" ref="ga605a8a67c0f1cf38cecfcfada45b28b5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group___s_t_m8___c_o_r_e.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM channel type. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00130">130</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaef1826611f5a65369e9e02d04e81ed61"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwmcnt_t" ref="gaef1826611f5a65369e9e02d04e81ed61" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group___s_t_m8___c_o_r_e.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> <a class="el" href="group___p_w_m___l_l_d.html#gaef1826611f5a65369e9e02d04e81ed61">pwmcnt_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM counter type. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00135">135</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaa3b607ac7aca4dc59345f779667c74e1"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::PWMDriver" ref="gaa3b607ac7aca4dc59345f779667c74e1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> <a class="el" href="struct_p_w_m_driver.html">PWMDriver</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Type of a structure representing an PWM driver. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00140">140</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga77de6597901387b5b6ecb58613b09b56"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwmcallback_t" ref="ga77de6597901387b5b6ecb58613b09b56" args=")(PWMDriver *pwmp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="group___p_w_m.html#ga77de6597901387b5b6ecb58613b09b56">pwmcallback_t</a>)(<a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *pwmp)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM notification callback type. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html#l00147">147</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8h_source.html">platforms/STM32/pwm_lld.h</a>.</p>
</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga9b63d6f4d51e8ca9ee1fce2a1bc86bc5"></a><!-- doxytag: member="pwm.h::pwmstate_t" ref="ga9b63d6f4d51e8ca9ee1fce2a1bc86bc5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___p_w_m.html#ga9b63d6f4d51e8ca9ee1fce2a1bc86bc5">pwmstate_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Driver state machine possible states. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5abff5b42e5ab002433b66a8910548b48c"></a><!-- doxytag: member="PWM_UNINIT" ref="gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5abff5b42e5ab002433b66a8910548b48c" args="" -->PWM_UNINIT</em>&nbsp;</td><td>
<p>Not initialized. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a4da638211112ff017325e9472592a151"></a><!-- doxytag: member="PWM_STOP" ref="gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a4da638211112ff017325e9472592a151" args="" -->PWM_STOP</em>&nbsp;</td><td>
<p>Stopped. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086"></a><!-- doxytag: member="PWM_READY" ref="gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086" args="" -->PWM_READY</em>&nbsp;</td><td>
<p>Ready. </p>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8h_source.html#l00059">59</a> of file <a class="el" href="pwm_8h_source.html">pwm.h</a>.</p>
</div>
</div>
<a class="anchor" id="gaaa2db6a7be396595dcf16da3f94634a0"></a><!-- doxytag: member="pwm.h::pwmmode_t" ref="gaaa2db6a7be396595dcf16da3f94634a0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___p_w_m.html#gaaa2db6a7be396595dcf16da3f94634a0">pwmmode_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM logic mode. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ggaaa2db6a7be396595dcf16da3f94634a0a36ed95007c3ef01cab4254f099e57b4d"></a><!-- doxytag: member="PWM_OUTPUT_DISABLED" ref="ggaaa2db6a7be396595dcf16da3f94634a0a36ed95007c3ef01cab4254f099e57b4d" args="" -->PWM_OUTPUT_DISABLED</em>&nbsp;</td><td>
<p>Output not driven, callback only. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaaa2db6a7be396595dcf16da3f94634a0aebf0e802a4bab8825b697f2f7e8346f1"></a><!-- doxytag: member="PWM_OUTPUT_ACTIVE_HIGH" ref="ggaaa2db6a7be396595dcf16da3f94634a0aebf0e802a4bab8825b697f2f7e8346f1" args="" -->PWM_OUTPUT_ACTIVE_HIGH</em>&nbsp;</td><td>
<p>Idle is logic level 0. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggaaa2db6a7be396595dcf16da3f94634a0a7a1e4472427e3a352e4837ba5146fcba"></a><!-- doxytag: member="PWM_OUTPUT_ACTIVE_LOW" ref="ggaaa2db6a7be396595dcf16da3f94634a0a7a1e4472427e3a352e4837ba5146fcba" args="" -->PWM_OUTPUT_ACTIVE_LOW</em>&nbsp;</td><td>
<p>Idle is logic level 1. </p>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8h_source.html#l00068">68</a> of file <a class="el" href="pwm_8h_source.html">pwm.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga1c8ae46921c4ae7d57bd44dd994e10bd"></a><!-- doxytag: member="pwm.h::pwmInit" ref="ga1c8ae46921c4ae7d57bd44dd994e10bd" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwmInit </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>PWM Driver initialization. </p>
<p>Definition at line <a class="el" href="pwm_8c_source.html#l00059">59</a> of file <a class="el" href="pwm_8c_source.html">pwm.c</a>.</p>
<p>References <a class="el" href="group___p_w_m___l_l_d.html#ga7cb5729a65c0996584808e4f93b28a0d">pwm_lld_init()</a>.</p>
<p>Referenced by <a class="el" href="group___h_a_l.html#gafd89c1650df524d95aef39b8bc38170d">halInit()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_ga1c8ae46921c4ae7d57bd44dd994e10bd_cgraph.png" border="0" usemap="#group___p_w_m_ga1c8ae46921c4ae7d57bd44dd994e10bd_cgraph" alt=""/></div>
<map name="group___p_w_m_ga1c8ae46921c4ae7d57bd44dd994e10bd_cgraph" id="group___p_w_m_ga1c8ae46921c4ae7d57bd44dd994e10bd_cgraph">
<area shape="rect" id="node3" href="group___p_w_m___l_l_d.html#ga7cb5729a65c0996584808e4f93b28a0d" title="Low level PWM driver initialization." alt="" coords="113,5,193,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ga4dbf1fded2984ff6dc240afd2e1fcd74"></a><!-- doxytag: member="pwm.h::pwmObjectInit" ref="ga4dbf1fded2984ff6dc240afd2e1fcd74" args="(PWMDriver *pwmp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwmObjectInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes the standard part of a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8c_source.html#l00069">69</a> of file <a class="el" href="pwm_8c_source.html">pwm.c</a>.</p>
<p>References <a class="el" href="struct_p_w_m_driver.html#a45bb852cfb3b30143315632e74703cb8">PWMDriver::pd_config</a>, and <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga7cb5729a65c0996584808e4f93b28a0d">pwm_lld_init()</a>.</p>
</div>
</div>
<a class="anchor" id="ga9c14dc1b026c78809440281786aceda3"></a><!-- doxytag: member="pwm.h::pwmStart" ref="ga9c14dc1b026c78809440281786aceda3" args="(PWMDriver *pwmp, const PWMConfig *config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwmStart </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="struct_p_w_m_config.html">PWMConfig</a> *&nbsp;</td>
<td class="paramname"> <em>config</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Configures and activates the PWM peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_config.html" title="Driver configuration structure.">PWMConfig</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8c_source.html#l00084">84</a> of file <a class="el" href="pwm_8c_source.html">pwm.c</a>.</p>
<p>References <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <a class="el" href="struct_p_w_m_driver.html#a45bb852cfb3b30143315632e74703cb8">PWMDriver::pd_config</a>, <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>, <a class="el" href="group___p_w_m___l_l_d.html#ga8a4d803d25a5326b48b3713ffd5fce53">pwm_lld_start()</a>, <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086">PWM_READY</a>, and <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a4da638211112ff017325e9472592a151">PWM_STOP</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_ga9c14dc1b026c78809440281786aceda3_cgraph.png" border="0" usemap="#group___p_w_m_ga9c14dc1b026c78809440281786aceda3_cgraph" alt=""/></div>
<map name="group___p_w_m_ga9c14dc1b026c78809440281786aceda3_cgraph" id="group___p_w_m_ga9c14dc1b026c78809440281786aceda3_cgraph">
<area shape="rect" id="node3" href="group___p_w_m___l_l_d.html#ga8a4d803d25a5326b48b3713ffd5fce53" title="Configures and activates the PWM peripheral." alt="" coords="123,5,213,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ga8a4d0d8a47883efe286a332cade14080"></a><!-- doxytag: member="pwm.h::pwmStop" ref="ga8a4d0d8a47883efe286a332cade14080" args="(PWMDriver *pwmp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwmStop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Deactivates the PWM peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8c_source.html#l00102">102</a> of file <a class="el" href="pwm_8c_source.html">pwm.c</a>.</p>
<p>References <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>, <a class="el" href="group___p_w_m___l_l_d.html#ga48b759363af69a6aaee37a362ed5bfd2">pwm_lld_stop()</a>, <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086">PWM_READY</a>, and <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a4da638211112ff017325e9472592a151">PWM_STOP</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_ga8a4d0d8a47883efe286a332cade14080_cgraph.png" border="0" usemap="#group___p_w_m_ga8a4d0d8a47883efe286a332cade14080_cgraph" alt=""/></div>
<map name="group___p_w_m_ga8a4d0d8a47883efe286a332cade14080_cgraph" id="group___p_w_m_ga8a4d0d8a47883efe286a332cade14080_cgraph">
<area shape="rect" id="node3" href="group___p_w_m___l_l_d.html#ga48b759363af69a6aaee37a362ed5bfd2" title="Deactivates the PWM peripheral." alt="" coords="124,5,212,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="gafd6c45693467da77ab13edca8420620d"></a><!-- doxytag: member="pwm.h::pwmEnableChannel" ref="gafd6c45693467da77ab13edca8420620d" args="(PWMDriver *pwmp, pwmchannel_t channel, pwmcnt_t width)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwmEnableChannel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a>&nbsp;</td>
<td class="paramname"> <em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___p_w_m___l_l_d.html#gaef1826611f5a65369e9e02d04e81ed61">pwmcnt_t</a>&nbsp;</td>
<td class="paramname"> <em>width</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enables a PWM channel. </p>
<p>Programs (or reprograms) a PWM channel.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>channel</em>&nbsp;</td><td>PWM channel identifier (0...PWM_CHANNELS-1) </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>width</em>&nbsp;</td><td>PWM pulse width as clock pulses number </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8c_source.html#l00122">122</a> of file <a class="el" href="pwm_8c_source.html">pwm.c</a>.</p>
<p>References <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>, <a class="el" href="group___p_w_m___l_l_d.html#ga312588cf680d50931666643dea45bb13">PWM_CHANNELS</a>, <a class="el" href="group___p_w_m___l_l_d.html#ga8c6320208680a823925d2816856437cc">pwm_lld_enable_channel()</a>, and <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086">PWM_READY</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_gafd6c45693467da77ab13edca8420620d_cgraph.png" border="0" usemap="#group___p_w_m_gafd6c45693467da77ab13edca8420620d_cgraph" alt=""/></div>
<map name="group___p_w_m_gafd6c45693467da77ab13edca8420620d_cgraph" id="group___p_w_m_gafd6c45693467da77ab13edca8420620d_cgraph">
<area shape="rect" id="node3" href="group___p_w_m___l_l_d.html#ga8c6320208680a823925d2816856437cc" title="Enables a PWM channel." alt="" coords="171,5,315,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="gac2679d11833a4ea9df5a9ed2e4a2c2e7"></a><!-- doxytag: member="pwm.h::pwmDisableChannel" ref="gac2679d11833a4ea9df5a9ed2e4a2c2e7" args="(PWMDriver *pwmp, pwmchannel_t channel)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwmDisableChannel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a>&nbsp;</td>
<td class="paramname"> <em>channel</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Disables a PWM channel. </p>
<p>The channel is disabled and its output line returned to the idle state.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>channel</em>&nbsp;</td><td>PWM channel identifier (0...PWM_CHANNELS-1) </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="pwm_8c_source.html#l00144">144</a> of file <a class="el" href="pwm_8c_source.html">pwm.c</a>.</p>
<p>References <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>, <a class="el" href="group___p_w_m___l_l_d.html#ga312588cf680d50931666643dea45bb13">PWM_CHANNELS</a>, <a class="el" href="group___p_w_m___l_l_d.html#ga78cb61d7ea9fc996e3c2adec3f37cfd8">pwm_lld_disable_channel()</a>, and <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086">PWM_READY</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_gac2679d11833a4ea9df5a9ed2e4a2c2e7_cgraph.png" border="0" usemap="#group___p_w_m_gac2679d11833a4ea9df5a9ed2e4a2c2e7_cgraph" alt=""/></div>
<map name="group___p_w_m_gac2679d11833a4ea9df5a9ed2e4a2c2e7_cgraph" id="group___p_w_m_gac2679d11833a4ea9df5a9ed2e4a2c2e7_cgraph">
<area shape="rect" id="node3" href="group___p_w_m___l_l_d.html#ga78cb61d7ea9fc996e3c2adec3f37cfd8" title="Disables a PWM channel." alt="" coords="173,5,320,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ga7cb5729a65c0996584808e4f93b28a0d"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwm_lld_init" ref="ga7cb5729a65c0996584808e4f93b28a0d" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwm_lld_init </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Low level PWM driver initialization. </p>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html#l00206">206</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html">platforms/STM32/pwm_lld.c</a>.</p>
<p>References <a class="el" href="struct_p_w_m_driver.html#a2301452c1ee3ef218ff2d3cd8305913b">PWMDriver::pd_enabled_channels</a>, <a class="el" href="struct_p_w_m_driver.html#a166b96927bbe9f85015a7ca390c668a7">PWMDriver::pd_tim</a>, and <a class="el" href="group___p_w_m.html#ga4dbf1fded2984ff6dc240afd2e1fcd74">pwmObjectInit()</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga1c8ae46921c4ae7d57bd44dd994e10bd">pwmInit()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_ga7cb5729a65c0996584808e4f93b28a0d_cgraph.png" border="0" usemap="#group___p_w_m_ga7cb5729a65c0996584808e4f93b28a0d_cgraph" alt=""/></div>
<map name="group___p_w_m_ga7cb5729a65c0996584808e4f93b28a0d_cgraph" id="group___p_w_m_ga7cb5729a65c0996584808e4f93b28a0d_cgraph">
<area shape="rect" id="node3" href="group___p_w_m.html#ga4dbf1fded2984ff6dc240afd2e1fcd74" title="Initializes the standard part of a PWMDriver structure." alt="" coords="136,5,227,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ga8a4d803d25a5326b48b3713ffd5fce53"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwm_lld_start" ref="ga8a4d803d25a5326b48b3713ffd5fce53" args="(PWMDriver *pwmp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwm_lld_start </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Configures and activates the PWM peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object</td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html#l00258">258</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html">platforms/STM32/pwm_lld.c</a>.</p>
<p>References <a class="el" href="group___a_r_m_c_mx___c_o_r_e.html#gabf50672d926743f012521dad719f3a0f">CORTEX_PRIORITY_MASK</a>, <a class="el" href="group___a_r_m_c_mx___n_v_i_c.html#ga607470c0f5d4bd0ee0f7208a9def4986">NVICEnableVector()</a>, <a class="el" href="struct_p_w_m_config.html#a883f1938e1e6af6759a7a7e9f459a8ca">PWMConfig::pc_arr</a>, <a class="el" href="struct_p_w_m_config.html#a5543b74e75ec8598f0bc5878fdcfacf2">PWMConfig::pc_callback</a>, <a class="el" href="struct_p_w_m_config.html#aede2520d01a1a34146ab2356c764cbf2">PWMConfig::pc_channels</a>, <a class="el" href="struct_p_w_m_config.html#ad505b6cbea937cc878584f50875437d7">PWMConfig::pc_cr2</a>, <a class="el" href="struct_p_w_m_config.html#ac393e708ea08dc7d5c9714be8fef35db">PWMConfig::pc_psc</a>, <a class="el" href="struct_p_w_m_channel_config.html#ae11e4f30de426d95a22c22a65ab0408c">PWMChannelConfig::pcc_mode</a>, <a class="el" href="struct_p_w_m_driver.html#a45bb852cfb3b30143315632e74703cb8">PWMDriver::pd_config</a>, <a class="el" href="struct_p_w_m_driver.html#a2301452c1ee3ef218ff2d3cd8305913b">PWMDriver::pd_enabled_channels</a>, <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>, <a class="el" href="struct_p_w_m_driver.html#a166b96927bbe9f85015a7ca390c668a7">PWMDriver::pd_tim</a>, <a class="el" href="group___p_w_m.html#ggaaa2db6a7be396595dcf16da3f94634a0aebf0e802a4bab8825b697f2f7e8346f1">PWM_OUTPUT_ACTIVE_HIGH</a>, <a class="el" href="group___p_w_m.html#ggaaa2db6a7be396595dcf16da3f94634a0a7a1e4472427e3a352e4837ba5146fcba">PWM_OUTPUT_ACTIVE_LOW</a>, <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a4da638211112ff017325e9472592a151">PWM_STOP</a>, <a class="el" href="group___p_w_m.html#gac800997848ce5e6c707372390d945c7c">STM32_PWM1_IRQ_PRIORITY</a>, <a class="el" href="group___p_w_m.html#ga0215547b5c9692aa9d6af10e46639f29">STM32_PWM2_IRQ_PRIORITY</a>, <a class="el" href="group___p_w_m.html#ga5dc025c64957640f0bd42460648c835a">STM32_PWM3_IRQ_PRIORITY</a>, and <a class="el" href="group___p_w_m.html#gafacc8948371fb7804b5c6cbb2a0aacd8">STM32_PWM4_IRQ_PRIORITY</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga9c14dc1b026c78809440281786aceda3">pwmStart()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_ga8a4d803d25a5326b48b3713ffd5fce53_cgraph.png" border="0" usemap="#group___p_w_m_ga8a4d803d25a5326b48b3713ffd5fce53_cgraph" alt=""/></div>
<map name="group___p_w_m_ga8a4d803d25a5326b48b3713ffd5fce53_cgraph" id="group___p_w_m_ga8a4d803d25a5326b48b3713ffd5fce53_cgraph">
<area shape="rect" id="node3" href="group___a_r_m_c_mx___n_v_i_c.html#ga607470c0f5d4bd0ee0f7208a9def4986" title="Sets the priority of an interrupt handler and enables it." alt="" coords="145,5,255,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ga48b759363af69a6aaee37a362ed5bfd2"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwm_lld_stop" ref="ga48b759363af69a6aaee37a362ed5bfd2" args="(PWMDriver *pwmp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwm_lld_stop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Deactivates the PWM peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object</td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html#l00370">370</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html">platforms/STM32/pwm_lld.c</a>.</p>
<p>References <a class="el" href="group___a_r_m_c_mx___n_v_i_c.html#ga66f3c540c80ac9d9ea7878671b0bd59e">NVICDisableVector()</a>, <a class="el" href="struct_p_w_m_driver.html#a2301452c1ee3ef218ff2d3cd8305913b">PWMDriver::pd_enabled_channels</a>, <a class="el" href="struct_p_w_m_driver.html#a773d182992e086ff89dd85d2f5e17dea">PWMDriver::pd_state</a>, <a class="el" href="struct_p_w_m_driver.html#a166b96927bbe9f85015a7ca390c668a7">PWMDriver::pd_tim</a>, and <a class="el" href="group___p_w_m.html#gga9b63d6f4d51e8ca9ee1fce2a1bc86bc5a1bb17b80878c81e8a0e4671a44bc7086">PWM_READY</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#ga8a4d0d8a47883efe286a332cade14080">pwmStop()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___p_w_m_ga48b759363af69a6aaee37a362ed5bfd2_cgraph.png" border="0" usemap="#group___p_w_m_ga48b759363af69a6aaee37a362ed5bfd2_cgraph" alt=""/></div>
<map name="group___p_w_m_ga48b759363af69a6aaee37a362ed5bfd2_cgraph" id="group___p_w_m_ga48b759363af69a6aaee37a362ed5bfd2_cgraph">
<area shape="rect" id="node3" href="group___a_r_m_c_mx___n_v_i_c.html#ga66f3c540c80ac9d9ea7878671b0bd59e" title="Disables an interrupt handler." alt="" coords="144,5,259,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ga8c6320208680a823925d2816856437cc"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwm_lld_enable_channel" ref="ga8c6320208680a823925d2816856437cc" args="(PWMDriver *pwmp, pwmchannel_t channel, pwmcnt_t width)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwm_lld_enable_channel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a>&nbsp;</td>
<td class="paramname"> <em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___p_w_m___l_l_d.html#gaef1826611f5a65369e9e02d04e81ed61">pwmcnt_t</a>&nbsp;</td>
<td class="paramname"> <em>width</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enables a PWM channel. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>channel</em>&nbsp;</td><td>PWM channel identifier (0...PWM_CHANNELS-1) </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>width</em>&nbsp;</td><td>PWM pulse width as clock pulses number </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html#l00421">421</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html">platforms/STM32/pwm_lld.c</a>.</p>
<p>References <a class="el" href="struct_p_w_m_config.html#aede2520d01a1a34146ab2356c764cbf2">PWMConfig::pc_channels</a>, <a class="el" href="struct_p_w_m_channel_config.html#a092221365865144cb12fa7e2c2e55c3a">PWMChannelConfig::pcc_callback</a>, <a class="el" href="struct_p_w_m_driver.html#a45bb852cfb3b30143315632e74703cb8">PWMDriver::pd_config</a>, <a class="el" href="struct_p_w_m_driver.html#a2301452c1ee3ef218ff2d3cd8305913b">PWMDriver::pd_enabled_channels</a>, and <a class="el" href="struct_p_w_m_driver.html#a166b96927bbe9f85015a7ca390c668a7">PWMDriver::pd_tim</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#gafd6c45693467da77ab13edca8420620d">pwmEnableChannel()</a>.</p>
</div>
</div>
<a class="anchor" id="ga78cb61d7ea9fc996e3c2adec3f37cfd8"></a><!-- doxytag: member="platforms/STM32/pwm_lld.h::pwm_lld_disable_channel" ref="ga78cb61d7ea9fc996e3c2adec3f37cfd8" args="(PWMDriver *pwmp, pwmchannel_t channel)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pwm_lld_disable_channel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_p_w_m_driver.html">PWMDriver</a> *&nbsp;</td>
<td class="paramname"> <em>pwmp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___p_w_m___l_l_d.html#ga605a8a67c0f1cf38cecfcfada45b28b5">pwmchannel_t</a>&nbsp;</td>
<td class="paramname"> <em>channel</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Disables a PWM channel. </p>
<p>The channel is disabled and its output line returned to the idle state.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pwmp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_p_w_m_driver.html" title="Structure representing an PWM driver.">PWMDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>channel</em>&nbsp;</td><td>PWM channel identifier (0...PWM_CHANNELS-1) </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html#l00446">446</a> of file <a class="el" href="platforms_2_s_t_m32_2pwm__lld_8c_source.html">platforms/STM32/pwm_lld.c</a>.</p>
<p>References <a class="el" href="struct_p_w_m_driver.html#a2301452c1ee3ef218ff2d3cd8305913b">PWMDriver::pd_enabled_channels</a>, and <a class="el" href="struct_p_w_m_driver.html#a166b96927bbe9f85015a7ca390c668a7">PWMDriver::pd_tim</a>.</p>
<p>Referenced by <a class="el" href="group___p_w_m.html#gac2679d11833a4ea9df5a9ed2e4a2c2e7">pwmDisableChannel()</a>.</p>
</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated on Sun Nov 28 2010 14:09:58 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
</body>
</html>