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.

Files at this revision

API Documentation at this revision

Comitter:
Davidroid
Date:
Thu Jan 14 17:05:46 2016 +0000
Parent:
3:843080fc7f37
Child:
5:8626c6a14ef3
Commit message:
+ Solved bug on initialization.; + "PowerON()" and "PowerOFF()" methods updated.

Changed in this revision

Components/led6001/led6001_class.h Show annotated file Show diff for this revision Revisions of this file
--- a/Components/led6001/led6001_class.h	Fri Dec 18 16:52:07 2015 +0000
+++ b/Components/led6001/led6001_class.h	Thu Jan 14 17:05:46 2016 +0000
@@ -79,8 +79,11 @@
 /* Period of PWM and Analog Dimming modes's PWM signal. */
 #define PWM_PERIOD_ms          (10)
 
+/* Duty Cycle of PWM and Analog Dimming modes's PWM signal to power the LED on. */
+#define PWM_DIMMING_ON         (1.0f)
+
 /* Duty Cycle of PWM and Analog Dimming modes's PWM signal to power the LED off. */
-#define PWM_DIMMING_OFF        (0.001f)
+#define PWM_DIMMING_OFF        (0.0f)
 
 /* Duty Cycle Range of Analog Dimming. */
 #define MAX_PWM_ANALOG_DIMMING (1.2f/3.3f)
@@ -116,6 +119,7 @@
          *   measure = 0;                                                     *
          *   instance_id = number_of_instances++;                             *
          *--------------------------------------------------------------------*/
+         this->xfault_irq.mode(PullUp);
     }
     
     /**
@@ -163,7 +167,7 @@
      * @param  id Pointer to an allocated variable to store the ID into.
      * @retval "0" in case of success, an error code otherwise.
      */
-    virtual int ReadID(uint8_t *id)
+    virtual int ReadID(uint8_t *id = NULL)
     {
         return (int) COMPONENT_OK;
     }
@@ -204,6 +208,17 @@
     }
 
     /**
+     * @brief  Powering ON at maximum light intensity.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void PowerON(void)
+    {
+        pwm.write(PWM_DIMMING_ON);
+        analog.write(PWM_DIMMING_ON);
+    }
+
+    /**
      * @brief  Powering OFF.
      * @param  None.
      * @retval None.
@@ -212,8 +227,6 @@
     {
         pwm.write(PWM_DIMMING_OFF);
         analog.write(PWM_DIMMING_OFF);
-        //SetPWMDimming(PWM_DIMMING_OFF);
-        //SetAnalogDimming(PWM_DIMMING_OFF);
     }
 
 
@@ -255,7 +268,7 @@
      */
     void AttachXFaultIRQ(void (*fptr)(void))
     {
-        xfault_irq.rise(fptr);
+        xfault_irq.fall(fptr);
     }
     
     /**