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 Dec 18 16:52:07 2015 +0000
Revision:
3:843080fc7f37
Parent:
2:a270bdb62fc8
Child:
4:771cbe8066dc
+ Unused code removed.

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 0:4a3d02667d9f 4 * @author Davide Aliprandi, STMicrolectronics
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 2:a270bdb62fc8 82 /* Duty Cycle of PWM and Analog Dimming modes's PWM signal to power the LED off. */
Davidroid 3:843080fc7f37 83 #define PWM_DIMMING_OFF (0.001f)
Davidroid 2:a270bdb62fc8 84
Davidroid 2:a270bdb62fc8 85 /* Duty Cycle Range of Analog Dimming. */
Davidroid 2:a270bdb62fc8 86 #define MAX_PWM_ANALOG_DIMMING (1.2f/3.3f)
Davidroid 2:a270bdb62fc8 87 #define MIN_PWM_ANALOG_DIMMING (0.3f/3.3f)
Davidroid 2:a270bdb62fc8 88
Davidroid 2:a270bdb62fc8 89
Davidroid 0:4a3d02667d9f 90 /* Classes -------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 91
Davidroid 0:4a3d02667d9f 92 /**
Davidroid 0:4a3d02667d9f 93 * @brief Class representing a LED6001 component.
Davidroid 0:4a3d02667d9f 94 */
Davidroid 0:4a3d02667d9f 95 class LED6001 : public Led
Davidroid 0:4a3d02667d9f 96 {
Davidroid 0:4a3d02667d9f 97 public:
Davidroid 0:4a3d02667d9f 98
Davidroid 0:4a3d02667d9f 99 /*** Constructor and Destructor Methods ***/
Davidroid 0:4a3d02667d9f 100
Davidroid 0:4a3d02667d9f 101 /**
Davidroid 0:4a3d02667d9f 102 * @brief Constructor.
Davidroid 1:eab47c592e8f 103 * @param xfault_irq pin name of the XFAULT pin of the component.
Davidroid 1:eab47c592e8f 104 * @param current pin name of the ADC pin of the component responsible
Davidroid 1:eab47c592e8f 105 * for sensing the current flowing through the LED.
Davidroid 2:a270bdb62fc8 106 * @param pwm pin name of the PWM pin of the component.
Davidroid 2:a270bdb62fc8 107 * @param analog pin name of the Analog pin of the component.
Davidroid 0:4a3d02667d9f 108 */
Davidroid 2:a270bdb62fc8 109 LED6001(PinName xfault_irq, PinName current, PinName pwm, PinName analog) : Led(), xfault_irq(xfault_irq), current(current), pwm(pwm), analog(analog)
Davidroid 0:4a3d02667d9f 110 {
Davidroid 0:4a3d02667d9f 111 /* ACTION 4 ----------------------------------------------------------*
Davidroid 0:4a3d02667d9f 112 * Initialize here the component's member variables, one variable per *
Davidroid 0:4a3d02667d9f 113 * line. *
Davidroid 0:4a3d02667d9f 114 * *
Davidroid 0:4a3d02667d9f 115 * Example: *
Davidroid 0:4a3d02667d9f 116 * measure = 0; *
Davidroid 0:4a3d02667d9f 117 * instance_id = number_of_instances++; *
Davidroid 0:4a3d02667d9f 118 *--------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 119 }
Davidroid 0:4a3d02667d9f 120
Davidroid 0:4a3d02667d9f 121 /**
Davidroid 0:4a3d02667d9f 122 * @brief Destructor.
Davidroid 0:4a3d02667d9f 123 */
Davidroid 0:4a3d02667d9f 124 virtual ~LED6001(void) {}
Davidroid 0:4a3d02667d9f 125
Davidroid 0:4a3d02667d9f 126
Davidroid 0:4a3d02667d9f 127 /*** Public Component Related Methods ***/
Davidroid 0:4a3d02667d9f 128
Davidroid 0:4a3d02667d9f 129 /* ACTION 5 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 130 * Implement here the component's public methods, as wrappers of the C *
Davidroid 0:4a3d02667d9f 131 * component's functions. *
Davidroid 0:4a3d02667d9f 132 * They should be: *
Davidroid 0:4a3d02667d9f 133 * + Methods with the same name of the C component's virtual table's *
Davidroid 0:4a3d02667d9f 134 * functions (1); *
Davidroid 0:4a3d02667d9f 135 * + Methods with the same name of the C component's extended virtual *
Davidroid 0:4a3d02667d9f 136 * table's functions, if any (2). *
Davidroid 0:4a3d02667d9f 137 * *
Davidroid 0:4a3d02667d9f 138 * Example: *
Davidroid 0:4a3d02667d9f 139 * virtual int GetValue(float *pData) //(1) *
Davidroid 0:4a3d02667d9f 140 * { *
Davidroid 0:4a3d02667d9f 141 * return COMPONENT_GetValue(float *pfData); *
Davidroid 0:4a3d02667d9f 142 * } *
Davidroid 0:4a3d02667d9f 143 * *
Davidroid 0:4a3d02667d9f 144 * virtual int EnableFeature(void) //(2) *
Davidroid 0:4a3d02667d9f 145 * { *
Davidroid 0:4a3d02667d9f 146 * return COMPONENT_EnableFeature(); *
Davidroid 0:4a3d02667d9f 147 * } *
Davidroid 0:4a3d02667d9f 148 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 149 /**
Davidroid 0:4a3d02667d9f 150 * @brief Initializing the component.
Davidroid 2:a270bdb62fc8 151 * @param init Pointer to device specific initalization structure.
Davidroid 2:a270bdb62fc8 152 * @retval "0" in case of success, an error code otherwise.
Davidroid 0:4a3d02667d9f 153 */
Davidroid 2:a270bdb62fc8 154 virtual int Init(void *init = NULL)
Davidroid 0:4a3d02667d9f 155 {
Davidroid 2:a270bdb62fc8 156 pwm.period_ms(PWM_PERIOD_ms);
Davidroid 2:a270bdb62fc8 157 analog.period_ms(PWM_PERIOD_ms);
Davidroid 2:a270bdb62fc8 158 return (int) COMPONENT_OK;
Davidroid 0:4a3d02667d9f 159 }
Davidroid 0:4a3d02667d9f 160
Davidroid 0:4a3d02667d9f 161 /**
Davidroid 2:a270bdb62fc8 162 * @brief Getting the ID of the component.
Davidroid 2:a270bdb62fc8 163 * @param id Pointer to an allocated variable to store the ID into.
Davidroid 2:a270bdb62fc8 164 * @retval "0" in case of success, an error code otherwise.
Davidroid 0:4a3d02667d9f 165 */
Davidroid 2:a270bdb62fc8 166 virtual int ReadID(uint8_t *id)
Davidroid 0:4a3d02667d9f 167 {
Davidroid 2:a270bdb62fc8 168 return (int) COMPONENT_OK;
Davidroid 2:a270bdb62fc8 169 }
Davidroid 2:a270bdb62fc8 170
Davidroid 2:a270bdb62fc8 171 /**
Davidroid 2:a270bdb62fc8 172 * @brief Getting the current flowing through the LED.
Davidroid 2:a270bdb62fc8 173 * @param None.
Davidroid 2:a270bdb62fc8 174 * @retval The current flowing through the LED, represented as a floating
Davidroid 2:a270bdb62fc8 175 * point number in the range [0.0, 1.0].
Davidroid 2:a270bdb62fc8 176 */
Davidroid 2:a270bdb62fc8 177 virtual float GetCurrent(void)
Davidroid 2:a270bdb62fc8 178 {
Davidroid 2:a270bdb62fc8 179 return current.read();
Davidroid 0:4a3d02667d9f 180 }
Davidroid 0:4a3d02667d9f 181
Davidroid 0:4a3d02667d9f 182 /**
Davidroid 2:a270bdb62fc8 183 * @brief Setting PWM dimming value.
Davidroid 2:a270bdb62fc8 184 * @param dimming PWM dimming value, represented as a floating
Davidroid 2:a270bdb62fc8 185 * point number in the range [0.0, 1.0].
Davidroid 0:4a3d02667d9f 186 * @retval None.
Davidroid 0:4a3d02667d9f 187 */
Davidroid 2:a270bdb62fc8 188 virtual void SetPWMDimming(float dimming)
Davidroid 0:4a3d02667d9f 189 {
Davidroid 2:a270bdb62fc8 190 if (dimming >= 0.0f && dimming <= 1.0f)
Davidroid 2:a270bdb62fc8 191 pwm.write(dimming);
Davidroid 0:4a3d02667d9f 192 }
Davidroid 0:4a3d02667d9f 193
Davidroid 0:4a3d02667d9f 194 /**
Davidroid 2:a270bdb62fc8 195 * @brief Setting Analog dimming value.
Davidroid 2:a270bdb62fc8 196 * @param dimming Analog dimming value, represented as a floating
Davidroid 2:a270bdb62fc8 197 * point number in the range [0.0, 1.0].
Davidroid 0:4a3d02667d9f 198 * @retval None.
Davidroid 0:4a3d02667d9f 199 */
Davidroid 2:a270bdb62fc8 200 virtual void SetAnalogDimming(float dimming)
Davidroid 0:4a3d02667d9f 201 {
Davidroid 2:a270bdb62fc8 202 if (dimming >= 0.0f && dimming <= 1.0f)
Davidroid 2:a270bdb62fc8 203 analog.write(dimming * (MAX_PWM_ANALOG_DIMMING - MIN_PWM_ANALOG_DIMMING) + MIN_PWM_ANALOG_DIMMING);
Davidroid 0:4a3d02667d9f 204 }
Davidroid 0:4a3d02667d9f 205
Davidroid 0:4a3d02667d9f 206 /**
Davidroid 2:a270bdb62fc8 207 * @brief Powering OFF.
Davidroid 0:4a3d02667d9f 208 * @param None.
Davidroid 2:a270bdb62fc8 209 * @retval None.
Davidroid 0:4a3d02667d9f 210 */
Davidroid 2:a270bdb62fc8 211 virtual void PowerOFF(void)
Davidroid 0:4a3d02667d9f 212 {
Davidroid 3:843080fc7f37 213 pwm.write(PWM_DIMMING_OFF);
Davidroid 3:843080fc7f37 214 analog.write(PWM_DIMMING_OFF);
Davidroid 3:843080fc7f37 215 //SetPWMDimming(PWM_DIMMING_OFF);
Davidroid 3:843080fc7f37 216 //SetAnalogDimming(PWM_DIMMING_OFF);
Davidroid 0:4a3d02667d9f 217 }
Davidroid 2:a270bdb62fc8 218
Davidroid 0:4a3d02667d9f 219
Davidroid 0:4a3d02667d9f 220 /*** Public Interrupt Related Methods ***/
Davidroid 0:4a3d02667d9f 221
Davidroid 0:4a3d02667d9f 222 /* ACTION 6 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 223 * Implement here interrupt related methods, if any. *
Davidroid 0:4a3d02667d9f 224 * Note that interrupt handling is platform dependent, e.g.: *
Davidroid 0:4a3d02667d9f 225 * + mbed: *
Davidroid 0:4a3d02667d9f 226 * InterruptIn feature_irq(pin); //Interrupt object. *
Davidroid 0:4a3d02667d9f 227 * feature_irq.rise(callback); //Attach a callback. *
Davidroid 0:4a3d02667d9f 228 * feature_irq.mode(PullNone); //Set interrupt mode. *
Davidroid 0:4a3d02667d9f 229 * feature_irq.enable_irq(); //Enable interrupt. *
Davidroid 0:4a3d02667d9f 230 * feature_irq.disable_irq(); //Disable interrupt. *
Davidroid 0:4a3d02667d9f 231 * + Arduino: *
Davidroid 0:4a3d02667d9f 232 * attachInterrupt(pin, callback, RISING); //Attach a callback. *
Davidroid 0:4a3d02667d9f 233 * detachInterrupt(pin); //Detach a callback. *
Davidroid 0:4a3d02667d9f 234 * *
Davidroid 0:4a3d02667d9f 235 * Example (mbed): *
Davidroid 0:4a3d02667d9f 236 * void AttachFeatureIRQ(void (*fptr) (void)) *
Davidroid 0:4a3d02667d9f 237 * { *
Davidroid 0:4a3d02667d9f 238 * feature_irq.rise(fptr); *
Davidroid 0:4a3d02667d9f 239 * } *
Davidroid 0:4a3d02667d9f 240 * *
Davidroid 0:4a3d02667d9f 241 * void EnableFeatureIRQ(void) *
Davidroid 0:4a3d02667d9f 242 * { *
Davidroid 0:4a3d02667d9f 243 * feature_irq.enable_irq(); *
Davidroid 0:4a3d02667d9f 244 * } *
Davidroid 0:4a3d02667d9f 245 * *
Davidroid 0:4a3d02667d9f 246 * void DisableFeatureIRQ(void) *
Davidroid 0:4a3d02667d9f 247 * { *
Davidroid 0:4a3d02667d9f 248 * feature_irq.disable_irq(); *
Davidroid 0:4a3d02667d9f 249 * } *
Davidroid 0:4a3d02667d9f 250 *------------------------------------------------------------------------*/
Davidroid 1:eab47c592e8f 251 /**
Davidroid 1:eab47c592e8f 252 * @brief Attaching an interrupt handler to the XFAULT interrupt.
Davidroid 1:eab47c592e8f 253 * @param fptr An interrupt handler.
Davidroid 1:eab47c592e8f 254 * @retval None.
Davidroid 1:eab47c592e8f 255 */
Davidroid 1:eab47c592e8f 256 void AttachXFaultIRQ(void (*fptr)(void))
Davidroid 1:eab47c592e8f 257 {
Davidroid 1:eab47c592e8f 258 xfault_irq.rise(fptr);
Davidroid 1:eab47c592e8f 259 }
Davidroid 1:eab47c592e8f 260
Davidroid 1:eab47c592e8f 261 /**
Davidroid 1:eab47c592e8f 262 * @brief Enabling the XFAULT interrupt handling.
Davidroid 1:eab47c592e8f 263 * @param None.
Davidroid 1:eab47c592e8f 264 * @retval None.
Davidroid 1:eab47c592e8f 265 */
Davidroid 1:eab47c592e8f 266 void EnableXFaultIRQ(void)
Davidroid 1:eab47c592e8f 267 {
Davidroid 1:eab47c592e8f 268 xfault_irq.enable_irq();
Davidroid 1:eab47c592e8f 269 }
Davidroid 1:eab47c592e8f 270
Davidroid 1:eab47c592e8f 271 /**
Davidroid 1:eab47c592e8f 272 * @brief Disabling the XFAULT interrupt handling.
Davidroid 1:eab47c592e8f 273 * @param None.
Davidroid 1:eab47c592e8f 274 * @retval None.
Davidroid 1:eab47c592e8f 275 */
Davidroid 1:eab47c592e8f 276 void DisableXFaultIRQ(void)
Davidroid 1:eab47c592e8f 277 {
Davidroid 1:eab47c592e8f 278 xfault_irq.disable_irq();
Davidroid 1:eab47c592e8f 279 }
Davidroid 0:4a3d02667d9f 280
Davidroid 0:4a3d02667d9f 281
Davidroid 0:4a3d02667d9f 282 protected:
Davidroid 0:4a3d02667d9f 283
Davidroid 0:4a3d02667d9f 284 /*** Protected Component Related Methods ***/
Davidroid 0:4a3d02667d9f 285
Davidroid 0:4a3d02667d9f 286 /* ACTION 7 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 287 * Declare here the component's specific methods. *
Davidroid 0:4a3d02667d9f 288 * They should be: *
Davidroid 0:4a3d02667d9f 289 * + Methods with the same name of the C component's virtual table's *
Davidroid 0:4a3d02667d9f 290 * functions (1); *
Davidroid 0:4a3d02667d9f 291 * + Methods with the same name of the C component's extended virtual *
Davidroid 0:4a3d02667d9f 292 * table's functions, if any (2); *
Davidroid 0:4a3d02667d9f 293 * + Helper methods, if any, like functions declared in the component's *
Davidroid 0:4a3d02667d9f 294 * source files but not pointed by the component's virtual table (3). *
Davidroid 0:4a3d02667d9f 295 * *
Davidroid 0:4a3d02667d9f 296 * Example: *
Davidroid 0:4a3d02667d9f 297 * DrvStatusTypeDef COMPONENT_GetValue(float* pfData); //(1) *
Davidroid 0:4a3d02667d9f 298 * DrvStatusTypeDef COMPONENT_EnableFeature(void); //(2) *
Davidroid 0:4a3d02667d9f 299 * DrvStatusTypeDef COMPONENT_ComputeAverage(void); //(3) *
Davidroid 0:4a3d02667d9f 300 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 301
Davidroid 0:4a3d02667d9f 302
Davidroid 0:4a3d02667d9f 303 /*** Component's I/O Methods ***/
Davidroid 0:4a3d02667d9f 304
Davidroid 0:4a3d02667d9f 305 /* ACTION 8 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 306 * Implement here other I/O methods beyond those already implemented *
Davidroid 0:4a3d02667d9f 307 * above, which are declared extern within the component's header file. *
Davidroid 0:4a3d02667d9f 308 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 309
Davidroid 0:4a3d02667d9f 310
Davidroid 0:4a3d02667d9f 311 /*** Component's Instance Variables ***/
Davidroid 0:4a3d02667d9f 312
Davidroid 0:4a3d02667d9f 313 /* ACTION 9 --------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 314 * Declare here interrupt related variables, if needed. *
Davidroid 0:4a3d02667d9f 315 * Note that interrupt handling is platform dependent, see *
Davidroid 0:4a3d02667d9f 316 * "Interrupt Related Methods" above. *
Davidroid 0:4a3d02667d9f 317 * *
Davidroid 0:4a3d02667d9f 318 * Example: *
Davidroid 0:4a3d02667d9f 319 * + mbed: *
Davidroid 0:4a3d02667d9f 320 * InterruptIn feature_irq; *
Davidroid 0:4a3d02667d9f 321 *------------------------------------------------------------------------*/
Davidroid 2:a270bdb62fc8 322 /* XFault Interrupt. */
Davidroid 2:a270bdb62fc8 323 InterruptIn xfault_irq;
Davidroid 0:4a3d02667d9f 324
Davidroid 0:4a3d02667d9f 325 /* ACTION 10 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 326 * Declare here other pin related variables, if needed. *
Davidroid 0:4a3d02667d9f 327 * *
Davidroid 0:4a3d02667d9f 328 * Example: *
Davidroid 0:4a3d02667d9f 329 * + mbed: *
Davidroid 0:4a3d02667d9f 330 * DigitalOut standby_reset; *
Davidroid 0:4a3d02667d9f 331 *------------------------------------------------------------------------*/
Davidroid 2:a270bdb62fc8 332 /* Pin to sense the current flowing through the LED. */
Davidroid 2:a270bdb62fc8 333 AnalogIn current;
Davidroid 2:a270bdb62fc8 334
Davidroid 2:a270bdb62fc8 335 /* Pulse Width Modulation dimming pin. */
Davidroid 2:a270bdb62fc8 336 PwmOut pwm;
Davidroid 2:a270bdb62fc8 337
Davidroid 2:a270bdb62fc8 338 /* Analog dimming pin. */
Davidroid 2:a270bdb62fc8 339 PwmOut analog;
Davidroid 0:4a3d02667d9f 340
Davidroid 0:4a3d02667d9f 341 /* ACTION 11 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 342 * Declare here communication related variables, if needed. *
Davidroid 0:4a3d02667d9f 343 * *
Davidroid 0:4a3d02667d9f 344 * Example: *
Davidroid 0:4a3d02667d9f 345 * + mbed: *
Davidroid 0:4a3d02667d9f 346 * DigitalOut address; *
Davidroid 0:4a3d02667d9f 347 * DevI2C &dev_i2c; *
Davidroid 0:4a3d02667d9f 348 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 349
Davidroid 0:4a3d02667d9f 350 /* ACTION 12 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 351 * Declare here identity related variables, if needed. *
Davidroid 0:4a3d02667d9f 352 * Note that there should be only a unique identifier for each component, *
Davidroid 0:4a3d02667d9f 353 * which should be the "who_am_i" parameter. *
Davidroid 0:4a3d02667d9f 354 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 355
Davidroid 0:4a3d02667d9f 356 /* ACTION 13 -------------------------------------------------------------*
Davidroid 0:4a3d02667d9f 357 * Declare here the component's static and non-static data, one variable *
Davidroid 0:4a3d02667d9f 358 * per line. *
Davidroid 0:4a3d02667d9f 359 * *
Davidroid 0:4a3d02667d9f 360 * Example: *
Davidroid 0:4a3d02667d9f 361 * float measure; *
Davidroid 0:4a3d02667d9f 362 * int instance_id; *
Davidroid 0:4a3d02667d9f 363 * static int number_of_instances; *
Davidroid 0:4a3d02667d9f 364 *------------------------------------------------------------------------*/
Davidroid 0:4a3d02667d9f 365 };
Davidroid 0:4a3d02667d9f 366
Davidroid 0:4a3d02667d9f 367 #endif // __LED6001_CLASS_H
Davidroid 0:4a3d02667d9f 368
Davidroid 0:4a3d02667d9f 369 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/