Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Led_config.cpp Source File

Led_config.cpp

00001 #include "mbed.h"
00002 #include "Led_config.h"
00003 
00004 DigitalOut GPIO_LED3(PA_15);//GREEN LED
00005 DigitalOut GPIO_LED2(PB_14);//ORANGE LED
00006 DigitalOut GPIO_LED1(PB_15);//RED LED
00007 
00008 //*****************************************************************************
00009 //
00010 //! Turn LED On
00011 //!
00012 //! \param  ledNum is the LED Number
00013 //!
00014 //! \return none
00015 //!
00016 //! \brief  Turns a specific LED On
00017 //
00018 //*****************************************************************************
00019 void
00020 GPIO_IF_LedOn(char ledNum)
00021 {
00022     switch(ledNum)
00023     {
00024         case MCU_ON_IND:
00025         case MCU_EXECUTE_SUCCESS_IND:
00026         case MCU_GREEN_LED_GPIO:
00027         {
00028           /* Switch ON GREEN LED */
00029           GPIO_LED3 = 1;
00030           break;
00031         }
00032         case MCU_SENDING_DATA_IND:
00033         case MCU_EXECUTE_FAIL_IND:
00034         case MCU_ORANGE_LED_GPIO:
00035         {
00036           /* Switch ON ORANGE LED */
00037           GPIO_LED2 = 1;
00038           break;
00039         }
00040         case MCU_ASSOCIATED_IND:
00041         case MCU_IP_ALLOC_IND:
00042         case MCU_SERVER_INIT_IND:
00043         case MCU_CLIENT_CONNECTED_IND:
00044         case MCU_RED_LED_GPIO:
00045         {
00046           /* Switch ON RED LED */
00047           GPIO_LED1 = 1;
00048           break;
00049         }
00050         case MCU_ALL_LED_IND:
00051         {
00052           /* Switch ON ALL LEDs LED */
00053           GPIO_LED1 = 1;
00054           GPIO_LED2 = 1;
00055           GPIO_LED3 = 1;
00056           break;
00057         }
00058         default:
00059           break;
00060     }
00061 }
00062 
00063 //*****************************************************************************
00064 //
00065 //! Turn LED Off
00066 //!
00067 //! \param  ledNum is the LED Number
00068 //!
00069 //! \return none
00070 //!
00071 //! \brief  Turns a specific LED Off
00072 //
00073 //*****************************************************************************
00074 void
00075 GPIO_IF_LedOff(char ledNum)
00076 {
00077   switch(ledNum)
00078   {
00079     case MCU_ON_IND:
00080     case MCU_EXECUTE_SUCCESS_IND:
00081     case MCU_GREEN_LED_GPIO:
00082     {
00083       /* Switch OFF GREEN LED */
00084       GPIO_LED3 = 0;
00085       break;
00086     }
00087     case MCU_SENDING_DATA_IND:
00088     case MCU_EXECUTE_FAIL_IND:
00089     case MCU_ORANGE_LED_GPIO:
00090     {
00091       /* Switch OFF ORANGE LED */
00092       GPIO_LED2 = 0;
00093       break;
00094     }
00095     case MCU_ASSOCIATED_IND:
00096     case MCU_IP_ALLOC_IND:
00097     case MCU_SERVER_INIT_IND:
00098     case MCU_CLIENT_CONNECTED_IND:
00099     case MCU_RED_LED_GPIO:
00100     {
00101       /* Switch OFF RED LED */
00102       GPIO_LED1 = 0;
00103       break;
00104     }
00105     case MCU_ALL_LED_IND:
00106     {
00107       /* Switch OFF ALL LEDs LED */
00108       GPIO_LED3 = 0;
00109       GPIO_LED2 = 0;
00110       GPIO_LED1 = 0;
00111       break;
00112     }
00113     default:
00114       break;
00115   }
00116 }
00117 
00118 //*****************************************************************************
00119 //
00120 //!  \brief This function returns LED current Status
00121 //!
00122 //!  \param[in] ucGPIONum is the GPIO to which the LED is connected
00123 //!                MCU_GREEN_LED_GPIO\MCU_ORANGE_LED_GPIO\MCU_RED_LED_GPIO
00124 //!
00125 //!
00126 //!  \return 1: LED ON, 0: LED OFF
00127 //
00128 //*****************************************************************************
00129 unsigned char
00130 GPIO_IF_LedStatus(unsigned char ucGPIONum)
00131 {
00132   unsigned char ucLEDStatus;
00133   switch(ucGPIONum)
00134   {
00135     case MCU_GREEN_LED_GPIO:
00136     {
00137       if(GPIO_LED3.read()){
00138          ucLEDStatus = 1;
00139       }else{
00140          ucLEDStatus = 0;
00141       }   
00142       break;
00143     }
00144     case MCU_ORANGE_LED_GPIO:
00145     {
00146       if(GPIO_LED2.read()){
00147          ucLEDStatus = 1;
00148       }else{
00149          ucLEDStatus = 0;
00150       }   
00151       break;
00152     }
00153     case MCU_RED_LED_GPIO:
00154     {
00155       if(GPIO_LED1.read()){
00156          ucLEDStatus = 1;
00157       }else{
00158          ucLEDStatus = 0;
00159       }   
00160       break;
00161     }
00162     default:
00163         ucLEDStatus = 0;
00164   }
00165   return ucLEDStatus;
00166 }
00167 
00168 //*****************************************************************************
00169 //
00170 //! Toggle the Led state
00171 //!
00172 //! \param  ledNum is the LED Number
00173 //!
00174 //! \return none
00175 //!
00176 //! \brief  Toggles a board LED
00177 //
00178 //*****************************************************************************
00179 void GPIO_IF_LedToggle(unsigned char ucLedNum)
00180 {
00181 
00182     unsigned char ucLEDStatus = GPIO_IF_LedStatus(ucLedNum);
00183     if(ucLEDStatus == 1)
00184     {
00185         GPIO_IF_LedOff(ucLedNum);
00186     }
00187     else
00188     {
00189         GPIO_IF_LedOn(ucLedNum);
00190     }
00191 }
00192