Library to handle the X-NUCLEO-LED61A1 LED Control Expansion Board based on the LED6001 component.

Dependents:   LedDimming_LED61A1_mbedOS HelloWorld_LED61A1_mbedOS LedDimming_LED61A1 HelloWorld_LED61A1 ... more

Fork of X_NUCLEO_LED61A1 by ST Expansion SW Team

LED Control Library

Library to handle the X-NUCLEO-LED61A1 LED Control Expansion Board based on the LED6001 component.

Platform compatibility

  • NUCLEO boards have been tested with the default configuration provided by the HelloWorld_LED61A1 example.
  • NUCLEO-F070RB, NUCLEO-F072RB, NUCLEO-F091RC boards have been tested with the following patch:
    • to connect with a wire the NUCLEO’s D9 pin to the LED61A1’s D6 pin;
    • to initialize the pwm PinName variable with D9 rather than D6.
  • NUCLEO-F302R8 board has been tested with the following patch:
    • to connect with a wire the NUCLEO’s D7 pin to the LED61A1’s D6 pin;
    • to initialize the pwm PinName variable with D7 rather than D6.
  • LPCXpresso11U68 board has been tested with the limitation of using only the PWM Dimming, as it provides only one PWM channel, thus allowing just one between the PWM or Analog Dimming functionalities. It has been tested with the following patch:
    • to connect with a wire the LPCX’s D3 pin to the LED61A1’s D4 pin;
    • to connect with a wire the LPCX’s D4 pin to the LED61A1’s D6 pin;
    • to initialize the xfault_irq PinName variable with D3 rather than D4;
    • to initialize the pwm PinName variable with D4 rather than D6;
    • to initialize the analog PinName variable with NC rather than D5;
    • to disable the use of the user button in any application example as it is not available.
  • FRDM-K64F board has been tested with the following patch:
    • to disable the use of the user button in any application example as it is not available.
Committer:
Davidroid
Date:
Fri Jan 15 17:11:35 2016 +0000
Revision:
5:8626c6a14ef3
Parent:
4:771cbe8066dc
Child:
7:20db85c1963c
+ Typo corrected.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Davidroid 0:4a3d02667d9f 1 /**
Davidroid 0:4a3d02667d9f 2 ******************************************************************************
Davidroid 0:4a3d02667d9f 3 * @file led6001_class.h
Davidroid 5:8626c6a14ef3 4 * @author Davide Aliprandi, STMicroelectronics
Davidroid 0:4a3d02667d9f 5 * @version V1.0.0
Davidroid 0:4a3d02667d9f 6 * @date December 9th, 2015
Davidroid 0:4a3d02667d9f 7 * @brief This file contains the class of an LED6001 component.
Davidroid 0:4a3d02667d9f 8 ******************************************************************************
Davidroid 0:4a3d02667d9f 9 * @attention
Davidroid 0:4a3d02667d9f 10 *
Davidroid 0:4a3d02667d9f 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Davidroid 0:4a3d02667d9f 12 *
Davidroid 0:4a3d02667d9f 13 * Redistribution and use in source and binary forms, with or without modification,
Davidroid 0:4a3d02667d9f 14 * are permitted provided that the following conditions are met:
Davidroid 0:4a3d02667d9f 15 * 1. Redistributions of source code must retain the above copyright notice,
Davidroid 0:4a3d02667d9f 16 * this list of conditions and the following disclaimer.
Davidroid 0:4a3d02667d9f 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Davidroid 0:4a3d02667d9f 18 * this list of conditions and the following disclaimer in the documentation
Davidroid 0:4a3d02667d9f 19 * and/or other materials provided with the distribution.
Davidroid 0:4a3d02667d9f 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Davidroid 0:4a3d02667d9f 21 * may be used to endorse or promote products derived from this software
Davidroid 0:4a3d02667d9f 22 * without specific prior written permission.
Davidroid 0:4a3d02667d9f 23 *
Davidroid 0:4a3d02667d9f 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Davidroid 0:4a3d02667d9f 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Davidroid 0:4a3d02667d9f 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Davidroid 0:4a3d02667d9f 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Davidroid 0:4a3d02667d9f 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Davidroid 0:4a3d02667d9f 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Davidroid 0:4a3d02667d9f 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Davidroid 0:4a3d02667d9f 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Davidroid 0:4a3d02667d9f 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Davidroid 0:4a3d02667d9f 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Davidroid 0:4a3d02667d9f 34 *
Davidroid 0:4a3d02667d9f 35 ******************************************************************************
Davidroid 0:4a3d02667d9f 36 */
Davidroid 0:4a3d02667d9f 37
Davidroid 0:4a3d02667d9f 38
Davidroid 0:4a3d02667d9f 39 /* Generated with Stm32CubeTOO -----------------------------------------------*/
Davidroid 0:4a3d02667d9f 40
Davidroid 0:4a3d02667d9f 41
Davidroid 0:4a3d02667d9f 42 /* Revision ------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 43 /*
Davidroid 0:4a3d02667d9f 44 Repository: http://svn.x-nucleodev.codex.cro.st.com/svnroot/X-NucleoDev
Davidroid 0:4a3d02667d9f 45 Branch/Trunk/Tag: trunk
Davidroid 0:4a3d02667d9f 46 Based on: X-CUBE-LED1/trunk/Drivers/BSP/Components/led6001/led6001.h
Davidroid 0:4a3d02667d9f 47 Revision: 0
Davidroid 0:4a3d02667d9f 48 */
Davidroid 0:4a3d02667d9f 49
Davidroid 0:4a3d02667d9f 50
Davidroid 0:4a3d02667d9f 51 /* Define to prevent recursive inclusion -------------------------------------*/
Davidroid 0:4a3d02667d9f 52
Davidroid 0:4a3d02667d9f 53 #ifndef __LED6001_CLASS_H
Davidroid 0:4a3d02667d9f 54 #define __LED6001_CLASS_H
Davidroid 0:4a3d02667d9f 55
Davidroid 0:4a3d02667d9f 56
Davidroid 0:4a3d02667d9f 57 /* Includes ------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 58
Davidroid 0:4a3d02667d9f 59 /* ACTION 1 ------------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 60 * Include here platform specific header files. *
Davidroid 0:4a3d02667d9f 61 *----------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 62 #include "mbed.h"
Davidroid 0:4a3d02667d9f 63 /* ACTION 2 ------------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 64 * Include here component specific header files. *
Davidroid 0:4a3d02667d9f 65 *----------------------------------------------------------------------------*/
Davidroid 3:843080fc7f37 66 #include "component.h"
Davidroid 0:4a3d02667d9f 67 /* ACTION 3 ------------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 68 * Include here interface specific header files. *
Davidroid 0:4a3d02667d9f 69 * *
Davidroid 0:4a3d02667d9f 70 * Example: *
Davidroid 0:4a3d02667d9f 71 * #include "../Interfaces/Humidity_class.h" *
Davidroid 0:4a3d02667d9f 72 * #include "../Interfaces/Temperature_class.h" *
Davidroid 0:4a3d02667d9f 73 *----------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 74 #include "../Interfaces/Led_class.h"
Davidroid 0:4a3d02667d9f 75
Davidroid 0:4a3d02667d9f 76
Davidroid 2:a270bdb62fc8 77 /* Definitions ---------------------------------------------------------------*/
Davidroid 2:a270bdb62fc8 78
Davidroid 2:a270bdb62fc8 79 /* Period of PWM and Analog Dimming modes's PWM signal. */
Davidroid 3:843080fc7f37 80 #define PWM_PERIOD_ms (10)
Davidroid 2:a270bdb62fc8 81
Davidroid 4:771cbe8066dc 82 /* Duty Cycle of PWM and Analog Dimming modes's PWM signal to power the LED on. */
Davidroid 4:771cbe8066dc 83 #define PWM_DIMMING_ON (1.0f)
Davidroid 4:771cbe8066dc 84
Davidroid 2:a270bdb62fc8 85 /* Duty Cycle of PWM and Analog Dimming modes's PWM signal to power the LED off. */
Davidroid 4:771cbe8066dc 86 #define PWM_DIMMING_OFF (0.0f)
Davidroid 2:a270bdb62fc8 87
Davidroid 2:a270bdb62fc8 88 /* Duty Cycle Range of Analog Dimming. */
Davidroid 2:a270bdb62fc8 89 #define MAX_PWM_ANALOG_DIMMING (1.2f/3.3f)
Davidroid 2:a270bdb62fc8 90 #define MIN_PWM_ANALOG_DIMMING (0.3f/3.3f)
Davidroid 2:a270bdb62fc8 91
Davidroid 2:a270bdb62fc8 92
Davidroid 0:4a3d02667d9f 93 /* Classes -------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 94
Davidroid 0:4a3d02667d9f 95 /**
Davidroid 0:4a3d02667d9f 96 * @brief Class representing a LED6001 component.
Davidroid 0:4a3d02667d9f 97 */
Davidroid 0:4a3d02667d9f 98 class LED6001 : public Led
Davidroid 0:4a3d02667d9f 99 {
Davidroid 0:4a3d02667d9f 100 public:
Davidroid 0:4a3d02667d9f 101
Davidroid 0:4a3d02667d9f 102 /*** Constructor and Destructor Methods ***/
Davidroid 0:4a3d02667d9f 103
Davidroid 0:4a3d02667d9f 104 /**
Davidroid 0:4a3d02667d9f 105 * @brief Constructor.
Davidroid 1:eab47c592e8f 106 * @param xfault_irq pin name of the XFAULT pin of the component.
Davidroid 1:eab47c592e8f 107 * @param current pin name of the ADC pin of the component responsible
Davidroid 1:eab47c592e8f 108 * for sensing the current flowing through the LED.
Davidroid 2:a270bdb62fc8 109 * @param pwm pin name of the PWM pin of the component.
Davidroid 2:a270bdb62fc8 110 * @param analog pin name of the Analog pin of the component.
Davidroid 0:4a3d02667d9f 111 */
Davidroid 2:a270bdb62fc8 112 LED6001(PinName xfault_irq, PinName current, PinName pwm, PinName analog) : Led(), xfault_irq(xfault_irq), current(current), pwm(pwm), analog(analog)
Davidroid 0:4a3d02667d9f 113 {
Davidroid 0:4a3d02667d9f 114 /* ACTION 4 ----------------------------------------------------------*
Davidroid 0:4a3d02667d9f 115 * Initialize here the component's member variables, one variable per *
Davidroid 0:4a3d02667d9f 116 * line. *
Davidroid 0:4a3d02667d9f 117 * *
Davidroid 0:4a3d02667d9f 118 * Example: *
Davidroid 0:4a3d02667d9f 119 * measure = 0; *
Davidroid 0:4a3d02667d9f 120 * instance_id = number_of_instances++; *
Davidroid 0:4a3d02667d9f 121 *--------------------------------------------------------------------*/
Davidroid 4:771cbe8066dc 122 this->xfault_irq.mode(PullUp);
Davidroid 0:4a3d02667d9f 123 }
Davidroid 0:4a3d02667d9f 124
Davidroid 0:4a3d02667d9f 125 /**
Davidroid 0:4a3d02667d9f 126 * @brief Destructor.
Davidroid 0:4a3d02667d9f 127 */
Davidroid 0:4a3d02667d9f 128 virtual ~LED6001(void) {}
Davidroid 0:4a3d02667d9f 129
Davidroid 0:4a3d02667d9f 130
Davidroid 0:4a3d02667d9f 131 /*** Public Component Related Methods ***/
Davidroid 0:4a3d02667d9f 132
Davidroid 0:4a3d02667d9f 133 /* ACTION 5 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 134 * Implement here the component's public methods, as wrappers of the C *
Davidroid 0:4a3d02667d9f 135 * component's functions. *
Davidroid 0:4a3d02667d9f 136 * They should be: *
Davidroid 0:4a3d02667d9f 137 * + Methods with the same name of the C component's virtual table's *
Davidroid 0:4a3d02667d9f 138 * functions (1); *
Davidroid 0:4a3d02667d9f 139 * + Methods with the same name of the C component's extended virtual *
Davidroid 0:4a3d02667d9f 140 * table's functions, if any (2). *
Davidroid 0:4a3d02667d9f 141 * *
Davidroid 0:4a3d02667d9f 142 * Example: *
Davidroid 0:4a3d02667d9f 143 * virtual int GetValue(float *pData) //(1) *
Davidroid 0:4a3d02667d9f 144 * { *
Davidroid 0:4a3d02667d9f 145 * return COMPONENT_GetValue(float *pfData); *
Davidroid 0:4a3d02667d9f 146 * } *
Davidroid 0:4a3d02667d9f 147 * *
Davidroid 0:4a3d02667d9f 148 * virtual int EnableFeature(void) //(2) *
Davidroid 0:4a3d02667d9f 149 * { *
Davidroid 0:4a3d02667d9f 150 * return COMPONENT_EnableFeature(); *
Davidroid 0:4a3d02667d9f 151 * } *
Davidroid 0:4a3d02667d9f 152 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 153 /**
Davidroid 0:4a3d02667d9f 154 * @brief Initializing the component.
Davidroid 2:a270bdb62fc8 155 * @param init Pointer to device specific initalization structure.
Davidroid 2:a270bdb62fc8 156 * @retval "0" in case of success, an error code otherwise.
Davidroid 0:4a3d02667d9f 157 */
Davidroid 2:a270bdb62fc8 158 virtual int Init(void *init = NULL)
Davidroid 0:4a3d02667d9f 159 {
Davidroid 2:a270bdb62fc8 160 pwm.period_ms(PWM_PERIOD_ms);
Davidroid 2:a270bdb62fc8 161 analog.period_ms(PWM_PERIOD_ms);
Davidroid 2:a270bdb62fc8 162 return (int) COMPONENT_OK;
Davidroid 0:4a3d02667d9f 163 }
Davidroid 0:4a3d02667d9f 164
Davidroid 0:4a3d02667d9f 165 /**
Davidroid 2:a270bdb62fc8 166 * @brief Getting the ID of the component.
Davidroid 2:a270bdb62fc8 167 * @param id Pointer to an allocated variable to store the ID into.
Davidroid 2:a270bdb62fc8 168 * @retval "0" in case of success, an error code otherwise.
Davidroid 0:4a3d02667d9f 169 */
Davidroid 4:771cbe8066dc 170 virtual int ReadID(uint8_t *id = NULL)
Davidroid 0:4a3d02667d9f 171 {
Davidroid 2:a270bdb62fc8 172 return (int) COMPONENT_OK;
Davidroid 2:a270bdb62fc8 173 }
Davidroid 2:a270bdb62fc8 174
Davidroid 2:a270bdb62fc8 175 /**
Davidroid 2:a270bdb62fc8 176 * @brief Getting the current flowing through the LED.
Davidroid 2:a270bdb62fc8 177 * @param None.
Davidroid 2:a270bdb62fc8 178 * @retval The current flowing through the LED, represented as a floating
Davidroid 2:a270bdb62fc8 179 * point number in the range [0.0, 1.0].
Davidroid 2:a270bdb62fc8 180 */
Davidroid 2:a270bdb62fc8 181 virtual float GetCurrent(void)
Davidroid 2:a270bdb62fc8 182 {
Davidroid 2:a270bdb62fc8 183 return current.read();
Davidroid 0:4a3d02667d9f 184 }
Davidroid 0:4a3d02667d9f 185
Davidroid 0:4a3d02667d9f 186 /**
Davidroid 2:a270bdb62fc8 187 * @brief Setting PWM dimming value.
Davidroid 2:a270bdb62fc8 188 * @param dimming PWM dimming value, represented as a floating
Davidroid 2:a270bdb62fc8 189 * point number in the range [0.0, 1.0].
Davidroid 0:4a3d02667d9f 190 * @retval None.
Davidroid 0:4a3d02667d9f 191 */
Davidroid 2:a270bdb62fc8 192 virtual void SetPWMDimming(float dimming)
Davidroid 0:4a3d02667d9f 193 {
Davidroid 2:a270bdb62fc8 194 if (dimming >= 0.0f && dimming <= 1.0f)
Davidroid 2:a270bdb62fc8 195 pwm.write(dimming);
Davidroid 0:4a3d02667d9f 196 }
Davidroid 0:4a3d02667d9f 197
Davidroid 0:4a3d02667d9f 198 /**
Davidroid 2:a270bdb62fc8 199 * @brief Setting Analog dimming value.
Davidroid 2:a270bdb62fc8 200 * @param dimming Analog dimming value, represented as a floating
Davidroid 2:a270bdb62fc8 201 * point number in the range [0.0, 1.0].
Davidroid 0:4a3d02667d9f 202 * @retval None.
Davidroid 0:4a3d02667d9f 203 */
Davidroid 2:a270bdb62fc8 204 virtual void SetAnalogDimming(float dimming)
Davidroid 0:4a3d02667d9f 205 {
Davidroid 2:a270bdb62fc8 206 if (dimming >= 0.0f && dimming <= 1.0f)
Davidroid 2:a270bdb62fc8 207 analog.write(dimming * (MAX_PWM_ANALOG_DIMMING - MIN_PWM_ANALOG_DIMMING) + MIN_PWM_ANALOG_DIMMING);
Davidroid 0:4a3d02667d9f 208 }
Davidroid 0:4a3d02667d9f 209
Davidroid 0:4a3d02667d9f 210 /**
Davidroid 4:771cbe8066dc 211 * @brief Powering ON at maximum light intensity.
Davidroid 4:771cbe8066dc 212 * @param None.
Davidroid 4:771cbe8066dc 213 * @retval None.
Davidroid 4:771cbe8066dc 214 */
Davidroid 4:771cbe8066dc 215 virtual void PowerON(void)
Davidroid 4:771cbe8066dc 216 {
Davidroid 4:771cbe8066dc 217 pwm.write(PWM_DIMMING_ON);
Davidroid 4:771cbe8066dc 218 analog.write(PWM_DIMMING_ON);
Davidroid 4:771cbe8066dc 219 }
Davidroid 4:771cbe8066dc 220
Davidroid 4:771cbe8066dc 221 /**
Davidroid 2:a270bdb62fc8 222 * @brief Powering OFF.
Davidroid 0:4a3d02667d9f 223 * @param None.
Davidroid 2:a270bdb62fc8 224 * @retval None.
Davidroid 0:4a3d02667d9f 225 */
Davidroid 2:a270bdb62fc8 226 virtual void PowerOFF(void)
Davidroid 0:4a3d02667d9f 227 {
Davidroid 3:843080fc7f37 228 pwm.write(PWM_DIMMING_OFF);
Davidroid 3:843080fc7f37 229 analog.write(PWM_DIMMING_OFF);
Davidroid 0:4a3d02667d9f 230 }
Davidroid 2:a270bdb62fc8 231
Davidroid 0:4a3d02667d9f 232
Davidroid 0:4a3d02667d9f 233 /*** Public Interrupt Related Methods ***/
Davidroid 0:4a3d02667d9f 234
Davidroid 0:4a3d02667d9f 235 /* ACTION 6 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 236 * Implement here interrupt related methods, if any. *
Davidroid 0:4a3d02667d9f 237 * Note that interrupt handling is platform dependent, e.g.: *
Davidroid 0:4a3d02667d9f 238 * + mbed: *
Davidroid 0:4a3d02667d9f 239 * InterruptIn feature_irq(pin); //Interrupt object. *
Davidroid 0:4a3d02667d9f 240 * feature_irq.rise(callback); //Attach a callback. *
Davidroid 0:4a3d02667d9f 241 * feature_irq.mode(PullNone); //Set interrupt mode. *
Davidroid 0:4a3d02667d9f 242 * feature_irq.enable_irq(); //Enable interrupt. *
Davidroid 0:4a3d02667d9f 243 * feature_irq.disable_irq(); //Disable interrupt. *
Davidroid 0:4a3d02667d9f 244 * + Arduino: *
Davidroid 0:4a3d02667d9f 245 * attachInterrupt(pin, callback, RISING); //Attach a callback. *
Davidroid 0:4a3d02667d9f 246 * detachInterrupt(pin); //Detach a callback. *
Davidroid 0:4a3d02667d9f 247 * *
Davidroid 0:4a3d02667d9f 248 * Example (mbed): *
Davidroid 0:4a3d02667d9f 249 * void AttachFeatureIRQ(void (*fptr) (void)) *
Davidroid 0:4a3d02667d9f 250 * { *
Davidroid 0:4a3d02667d9f 251 * feature_irq.rise(fptr); *
Davidroid 0:4a3d02667d9f 252 * } *
Davidroid 0:4a3d02667d9f 253 * *
Davidroid 0:4a3d02667d9f 254 * void EnableFeatureIRQ(void) *
Davidroid 0:4a3d02667d9f 255 * { *
Davidroid 0:4a3d02667d9f 256 * feature_irq.enable_irq(); *
Davidroid 0:4a3d02667d9f 257 * } *
Davidroid 0:4a3d02667d9f 258 * *
Davidroid 0:4a3d02667d9f 259 * void DisableFeatureIRQ(void) *
Davidroid 0:4a3d02667d9f 260 * { *
Davidroid 0:4a3d02667d9f 261 * feature_irq.disable_irq(); *
Davidroid 0:4a3d02667d9f 262 * } *
Davidroid 0:4a3d02667d9f 263 *------------------------------------------------------------------------*/
Davidroid 1:eab47c592e8f 264 /**
Davidroid 1:eab47c592e8f 265 * @brief Attaching an interrupt handler to the XFAULT interrupt.
Davidroid 1:eab47c592e8f 266 * @param fptr An interrupt handler.
Davidroid 1:eab47c592e8f 267 * @retval None.
Davidroid 1:eab47c592e8f 268 */
Davidroid 1:eab47c592e8f 269 void AttachXFaultIRQ(void (*fptr)(void))
Davidroid 1:eab47c592e8f 270 {
Davidroid 4:771cbe8066dc 271 xfault_irq.fall(fptr);
Davidroid 1:eab47c592e8f 272 }
Davidroid 1:eab47c592e8f 273
Davidroid 1:eab47c592e8f 274 /**
Davidroid 1:eab47c592e8f 275 * @brief Enabling the XFAULT interrupt handling.
Davidroid 1:eab47c592e8f 276 * @param None.
Davidroid 1:eab47c592e8f 277 * @retval None.
Davidroid 1:eab47c592e8f 278 */
Davidroid 1:eab47c592e8f 279 void EnableXFaultIRQ(void)
Davidroid 1:eab47c592e8f 280 {
Davidroid 1:eab47c592e8f 281 xfault_irq.enable_irq();
Davidroid 1:eab47c592e8f 282 }
Davidroid 1:eab47c592e8f 283
Davidroid 1:eab47c592e8f 284 /**
Davidroid 1:eab47c592e8f 285 * @brief Disabling the XFAULT interrupt handling.
Davidroid 1:eab47c592e8f 286 * @param None.
Davidroid 1:eab47c592e8f 287 * @retval None.
Davidroid 1:eab47c592e8f 288 */
Davidroid 1:eab47c592e8f 289 void DisableXFaultIRQ(void)
Davidroid 1:eab47c592e8f 290 {
Davidroid 1:eab47c592e8f 291 xfault_irq.disable_irq();
Davidroid 1:eab47c592e8f 292 }
Davidroid 0:4a3d02667d9f 293
Davidroid 0:4a3d02667d9f 294
Davidroid 0:4a3d02667d9f 295 protected:
Davidroid 0:4a3d02667d9f 296
Davidroid 0:4a3d02667d9f 297 /*** Protected Component Related Methods ***/
Davidroid 0:4a3d02667d9f 298
Davidroid 0:4a3d02667d9f 299 /* ACTION 7 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 300 * Declare here the component's specific methods. *
Davidroid 0:4a3d02667d9f 301 * They should be: *
Davidroid 0:4a3d02667d9f 302 * + Methods with the same name of the C component's virtual table's *
Davidroid 0:4a3d02667d9f 303 * functions (1); *
Davidroid 0:4a3d02667d9f 304 * + Methods with the same name of the C component's extended virtual *
Davidroid 0:4a3d02667d9f 305 * table's functions, if any (2); *
Davidroid 0:4a3d02667d9f 306 * + Helper methods, if any, like functions declared in the component's *
Davidroid 0:4a3d02667d9f 307 * source files but not pointed by the component's virtual table (3). *
Davidroid 0:4a3d02667d9f 308 * *
Davidroid 0:4a3d02667d9f 309 * Example: *
Davidroid 0:4a3d02667d9f 310 * DrvStatusTypeDef COMPONENT_GetValue(float* pfData); //(1) *
Davidroid 0:4a3d02667d9f 311 * DrvStatusTypeDef COMPONENT_EnableFeature(void); //(2) *
Davidroid 0:4a3d02667d9f 312 * DrvStatusTypeDef COMPONENT_ComputeAverage(void); //(3) *
Davidroid 0:4a3d02667d9f 313 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 314
Davidroid 0:4a3d02667d9f 315
Davidroid 0:4a3d02667d9f 316 /*** Component's I/O Methods ***/
Davidroid 0:4a3d02667d9f 317
Davidroid 0:4a3d02667d9f 318 /* ACTION 8 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 319 * Implement here other I/O methods beyond those already implemented *
Davidroid 0:4a3d02667d9f 320 * above, which are declared extern within the component's header file. *
Davidroid 0:4a3d02667d9f 321 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 322
Davidroid 0:4a3d02667d9f 323
Davidroid 0:4a3d02667d9f 324 /*** Component's Instance Variables ***/
Davidroid 0:4a3d02667d9f 325
Davidroid 0:4a3d02667d9f 326 /* ACTION 9 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 327 * Declare here interrupt related variables, if needed. *
Davidroid 0:4a3d02667d9f 328 * Note that interrupt handling is platform dependent, see *
Davidroid 0:4a3d02667d9f 329 * "Interrupt Related Methods" above. *
Davidroid 0:4a3d02667d9f 330 * *
Davidroid 0:4a3d02667d9f 331 * Example: *
Davidroid 0:4a3d02667d9f 332 * + mbed: *
Davidroid 0:4a3d02667d9f 333 * InterruptIn feature_irq; *
Davidroid 0:4a3d02667d9f 334 *------------------------------------------------------------------------*/
Davidroid 2:a270bdb62fc8 335 /* XFault Interrupt. */
Davidroid 2:a270bdb62fc8 336 InterruptIn xfault_irq;
Davidroid 0:4a3d02667d9f 337
Davidroid 0:4a3d02667d9f 338 /* ACTION 10 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 339 * Declare here other pin related variables, if needed. *
Davidroid 0:4a3d02667d9f 340 * *
Davidroid 0:4a3d02667d9f 341 * Example: *
Davidroid 0:4a3d02667d9f 342 * + mbed: *
Davidroid 0:4a3d02667d9f 343 * DigitalOut standby_reset; *
Davidroid 0:4a3d02667d9f 344 *------------------------------------------------------------------------*/
Davidroid 2:a270bdb62fc8 345 /* Pin to sense the current flowing through the LED. */
Davidroid 2:a270bdb62fc8 346 AnalogIn current;
Davidroid 2:a270bdb62fc8 347
Davidroid 2:a270bdb62fc8 348 /* Pulse Width Modulation dimming pin. */
Davidroid 2:a270bdb62fc8 349 PwmOut pwm;
Davidroid 2:a270bdb62fc8 350
Davidroid 2:a270bdb62fc8 351 /* Analog dimming pin. */
Davidroid 2:a270bdb62fc8 352 PwmOut analog;
Davidroid 0:4a3d02667d9f 353
Davidroid 0:4a3d02667d9f 354 /* ACTION 11 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 355 * Declare here communication related variables, if needed. *
Davidroid 0:4a3d02667d9f 356 * *
Davidroid 0:4a3d02667d9f 357 * Example: *
Davidroid 0:4a3d02667d9f 358 * + mbed: *
Davidroid 0:4a3d02667d9f 359 * DigitalOut address; *
Davidroid 0:4a3d02667d9f 360 * DevI2C &dev_i2c; *
Davidroid 0:4a3d02667d9f 361 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 362
Davidroid 0:4a3d02667d9f 363 /* ACTION 12 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 364 * Declare here identity related variables, if needed. *
Davidroid 0:4a3d02667d9f 365 * Note that there should be only a unique identifier for each component, *
Davidroid 0:4a3d02667d9f 366 * which should be the "who_am_i" parameter. *
Davidroid 0:4a3d02667d9f 367 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 368
Davidroid 0:4a3d02667d9f 369 /* ACTION 13 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 370 * Declare here the component's static and non-static data, one variable *
Davidroid 0:4a3d02667d9f 371 * per line. *
Davidroid 0:4a3d02667d9f 372 * *
Davidroid 0:4a3d02667d9f 373 * Example: *
Davidroid 0:4a3d02667d9f 374 * float measure; *
Davidroid 0:4a3d02667d9f 375 * int instance_id; *
Davidroid 0:4a3d02667d9f 376 * static int number_of_instances; *
Davidroid 0:4a3d02667d9f 377 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 378 };
Davidroid 0:4a3d02667d9f 379
Davidroid 0:4a3d02667d9f 380 #endif // __LED6001_CLASS_H
Davidroid 0:4a3d02667d9f 381
Davidroid 0:4a3d02667d9f 382 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/