ChibiOS/RT Architecture - Reference Manual - Guides |
00001 /* 00002 ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio. 00003 00004 This file is part of ChibiOS/RT. 00005 00006 ChibiOS/RT is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 ChibiOS/RT is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 00019 --- 00020 00021 A special exception to the GPL can be applied should you wish to distribute 00022 a combined work that includes ChibiOS/RT, without being obliged to provide 00023 the source code for any proprietary components. See the file exception.txt 00024 for full details of how and when the exception can be applied. 00025 */ 00026 00027 /** 00028 * @file templates/pwm_lld.c 00029 * @brief PWM Driver subsystem low level driver source template. 00030 * 00031 * @addtogroup PWM_LLD 00032 * @{ 00033 */ 00034 00035 #include "ch.h" 00036 #include "hal.h" 00037 00038 /*===========================================================================*/ 00039 /* Driver exported variables. */ 00040 /*===========================================================================*/ 00041 00042 /*===========================================================================*/ 00043 /* Driver local variables. */ 00044 /*===========================================================================*/ 00045 00046 /*===========================================================================*/ 00047 /* Driver local functions. */ 00048 /*===========================================================================*/ 00049 00050 /*===========================================================================*/ 00051 /* Driver interrupt handlers. */ 00052 /*===========================================================================*/ 00053 00054 /*===========================================================================*/ 00055 /* Driver exported functions. */ 00056 /*===========================================================================*/ 00057 00058 /** 00059 * @brief Low level PWM driver initialization. 00060 */ 00061 void pwm_lld_init(void) { 00062 00063 } 00064 00065 /** 00066 * @brief Configures and activates the PWM peripheral. 00067 * 00068 * @param[in] pwmp pointer to the @p PWMDriver object 00069 */ 00070 void pwm_lld_start(PWMDriver *pwmp) { 00071 00072 if (pwmp->pd_state == PWM_STOP) { 00073 /* Clock activation.*/ 00074 } 00075 /* Configuration.*/ 00076 } 00077 00078 /** 00079 * @brief Deactivates the PWM peripheral. 00080 * 00081 * @param[in] pwmp pointer to the @p PWMDriver object 00082 */ 00083 void pwm_lld_stop(PWMDriver *pwmp) { 00084 00085 } 00086 00087 /** 00088 * @brief Determines whatever the PWM channel is already enabled. 00089 * 00090 * @param[in] pwmp pointer to the @p PWMDriver object 00091 * @param[in] channel PWM channel identifier 00092 * @return The PWM channel status. 00093 * @retval FALSE the channel is not enabled. 00094 * @retval TRUE the channel is enabled. 00095 */ 00096 bool_t pwm_lld_is_enabled(PWMDriver *pwmp, pwmchannel_t channel) { 00097 00098 return FALSE; 00099 } 00100 00101 /** 00102 * @brief Enables a callback mode for the specified PWM channel. 00103 * @details The callback mode must be set before starting a PWM channel. 00104 * 00105 * @param[in] pwmp pointer to the @p PWMDriver object 00106 * @param[in] channel PWM channel identifier 00107 * @param[in] edge output edge mode 00108 * @param[in] callback callback function 00109 */ 00110 void pwm_lld_set_callback(PWMDriver *pwmp, pwmchannel_t channel, 00111 pwmedge_t edge, pwmcallback_t callback) { 00112 00113 } 00114 00115 /** 00116 * @brief Enables a PWM channel. 00117 * 00118 * @param[in] pwmp pointer to the @p PWMDriver object 00119 * @param[in] channel PWM channel identifier 00120 * @param[in] width PWM pulse width as clock pulses number 00121 */ 00122 void pwm_lld_enable_channel(PWMDriver *pwmp, 00123 pwmchannel_t channel, 00124 pwmcnt_t width) { 00125 00126 } 00127 00128 /** 00129 * @brief Disables a PWM channel. 00130 * @details The channel is disabled and its output line returned to the 00131 * idle state. 00132 * 00133 * @param[in] pwmp pointer to the @p PWMDriver object 00134 * @param[in] channel PWM channel identifier 00135 */ 00136 void pwm_lld_disable_channel(PWMDriver *pwmp, pwmchannel_t channel) { 00137 00138 } 00139 00140 /** @} */