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

Committer:
dflet
Date:
Wed Jun 24 09:54:16 2015 +0000
Revision:
0:50cedd586816
Child:
3:7643714ec664
First commit work in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 #include "mbed.h"
dflet 0:50cedd586816 2 #include "Led_config.h"
dflet 0:50cedd586816 3
dflet 0:50cedd586816 4 DigitalOut GPIO_LED3(PA_15);//GREEN LED
dflet 0:50cedd586816 5 DigitalOut GPIO_LED2(PB_14);//ORANGE LED
dflet 0:50cedd586816 6 DigitalOut GPIO_LED1(PB_15);//RED LED
dflet 0:50cedd586816 7
dflet 0:50cedd586816 8 //*****************************************************************************
dflet 0:50cedd586816 9 //
dflet 0:50cedd586816 10 //! Turn LED On
dflet 0:50cedd586816 11 //!
dflet 0:50cedd586816 12 //! \param ledNum is the LED Number
dflet 0:50cedd586816 13 //!
dflet 0:50cedd586816 14 //! \return none
dflet 0:50cedd586816 15 //!
dflet 0:50cedd586816 16 //! \brief Turns a specific LED Off
dflet 0:50cedd586816 17 //
dflet 0:50cedd586816 18 //*****************************************************************************
dflet 0:50cedd586816 19 void
dflet 0:50cedd586816 20 GPIO_IF_LedOn(char ledNum)
dflet 0:50cedd586816 21 {
dflet 0:50cedd586816 22 switch(ledNum)
dflet 0:50cedd586816 23 {
dflet 0:50cedd586816 24 case MCU_ON_IND:
dflet 0:50cedd586816 25 case MCU_EXECUTE_SUCCESS_IND:
dflet 0:50cedd586816 26 case MCU_GREEN_LED_GPIO:
dflet 0:50cedd586816 27 {
dflet 0:50cedd586816 28 /* Switch ON GREEN LED */
dflet 0:50cedd586816 29 GPIO_LED3 = 1;
dflet 0:50cedd586816 30 break;
dflet 0:50cedd586816 31 }
dflet 0:50cedd586816 32 case MCU_SENDING_DATA_IND:
dflet 0:50cedd586816 33 case MCU_EXECUTE_FAIL_IND:
dflet 0:50cedd586816 34 case MCU_ORANGE_LED_GPIO:
dflet 0:50cedd586816 35 {
dflet 0:50cedd586816 36 /* Switch ON ORANGE LED */
dflet 0:50cedd586816 37 GPIO_LED2 = 1;
dflet 0:50cedd586816 38 break;
dflet 0:50cedd586816 39 }
dflet 0:50cedd586816 40 case MCU_ASSOCIATED_IND:
dflet 0:50cedd586816 41 case MCU_IP_ALLOC_IND:
dflet 0:50cedd586816 42 case MCU_SERVER_INIT_IND:
dflet 0:50cedd586816 43 case MCU_CLIENT_CONNECTED_IND:
dflet 0:50cedd586816 44 case MCU_RED_LED_GPIO:
dflet 0:50cedd586816 45 {
dflet 0:50cedd586816 46 /* Switch ON RED LED */
dflet 0:50cedd586816 47 GPIO_LED1 = 1;
dflet 0:50cedd586816 48 break;
dflet 0:50cedd586816 49 }
dflet 0:50cedd586816 50 case MCU_ALL_LED_IND:
dflet 0:50cedd586816 51 {
dflet 0:50cedd586816 52 /* Switch ON ALL LEDs LED */
dflet 0:50cedd586816 53 GPIO_LED1 = 1;
dflet 0:50cedd586816 54 GPIO_LED2 = 1;
dflet 0:50cedd586816 55 GPIO_LED3 = 1;
dflet 0:50cedd586816 56 break;
dflet 0:50cedd586816 57 }
dflet 0:50cedd586816 58 default:
dflet 0:50cedd586816 59 break;
dflet 0:50cedd586816 60 }
dflet 0:50cedd586816 61 }
dflet 0:50cedd586816 62
dflet 0:50cedd586816 63 //*****************************************************************************
dflet 0:50cedd586816 64 //
dflet 0:50cedd586816 65 //! Turn LED Off
dflet 0:50cedd586816 66 //!
dflet 0:50cedd586816 67 //! \param ledNum is the LED Number
dflet 0:50cedd586816 68 //!
dflet 0:50cedd586816 69 //! \return none
dflet 0:50cedd586816 70 //!
dflet 0:50cedd586816 71 //! \brief Turns a specific LED Off
dflet 0:50cedd586816 72 //
dflet 0:50cedd586816 73 //*****************************************************************************
dflet 0:50cedd586816 74 void
dflet 0:50cedd586816 75 GPIO_IF_LedOff(char ledNum)
dflet 0:50cedd586816 76 {
dflet 0:50cedd586816 77 switch(ledNum)
dflet 0:50cedd586816 78 {
dflet 0:50cedd586816 79 case MCU_ON_IND:
dflet 0:50cedd586816 80 case MCU_EXECUTE_SUCCESS_IND:
dflet 0:50cedd586816 81 case MCU_GREEN_LED_GPIO:
dflet 0:50cedd586816 82 {
dflet 0:50cedd586816 83 /* Switch OFF GREEN LED */
dflet 0:50cedd586816 84 GPIO_LED3 = 0;
dflet 0:50cedd586816 85 break;
dflet 0:50cedd586816 86 }
dflet 0:50cedd586816 87 case MCU_SENDING_DATA_IND:
dflet 0:50cedd586816 88 case MCU_EXECUTE_FAIL_IND:
dflet 0:50cedd586816 89 case MCU_ORANGE_LED_GPIO:
dflet 0:50cedd586816 90 {
dflet 0:50cedd586816 91 /* Switch OFF ORANGE LED */
dflet 0:50cedd586816 92 GPIO_LED2 = 0;
dflet 0:50cedd586816 93 break;
dflet 0:50cedd586816 94 }
dflet 0:50cedd586816 95 case MCU_ASSOCIATED_IND:
dflet 0:50cedd586816 96 case MCU_IP_ALLOC_IND:
dflet 0:50cedd586816 97 case MCU_SERVER_INIT_IND:
dflet 0:50cedd586816 98 case MCU_CLIENT_CONNECTED_IND:
dflet 0:50cedd586816 99 case MCU_RED_LED_GPIO:
dflet 0:50cedd586816 100 {
dflet 0:50cedd586816 101 /* Switch OFF RED LED */
dflet 0:50cedd586816 102 GPIO_LED1 = 0;
dflet 0:50cedd586816 103 break;
dflet 0:50cedd586816 104 }
dflet 0:50cedd586816 105 case MCU_ALL_LED_IND:
dflet 0:50cedd586816 106 {
dflet 0:50cedd586816 107 /* Switch OFF ALL LEDs LED */
dflet 0:50cedd586816 108 GPIO_LED3 = 0;
dflet 0:50cedd586816 109 GPIO_LED2 = 0;
dflet 0:50cedd586816 110 GPIO_LED1 = 0;
dflet 0:50cedd586816 111 break;
dflet 0:50cedd586816 112 }
dflet 0:50cedd586816 113 default:
dflet 0:50cedd586816 114 break;
dflet 0:50cedd586816 115 }
dflet 0:50cedd586816 116 }
dflet 0:50cedd586816 117
dflet 0:50cedd586816 118 //*****************************************************************************
dflet 0:50cedd586816 119 //
dflet 0:50cedd586816 120 //! \brief This function returns LED current Status
dflet 0:50cedd586816 121 //!
dflet 0:50cedd586816 122 //! \param[in] ucGPIONum is the GPIO to which the LED is connected
dflet 0:50cedd586816 123 //! MCU_GREEN_LED_GPIO\MCU_ORANGE_LED_GPIO\MCU_RED_LED_GPIO
dflet 0:50cedd586816 124 //!
dflet 0:50cedd586816 125 //!
dflet 0:50cedd586816 126 //! \return 1: LED ON, 0: LED OFF
dflet 0:50cedd586816 127 //
dflet 0:50cedd586816 128 //*****************************************************************************
dflet 0:50cedd586816 129 unsigned char
dflet 0:50cedd586816 130 GPIO_IF_LedStatus(unsigned char ucGPIONum)
dflet 0:50cedd586816 131 {
dflet 0:50cedd586816 132 unsigned char ucLEDStatus;
dflet 0:50cedd586816 133 switch(ucGPIONum)
dflet 0:50cedd586816 134 {
dflet 0:50cedd586816 135 case MCU_GREEN_LED_GPIO:
dflet 0:50cedd586816 136 {
dflet 0:50cedd586816 137 if(GPIO_LED3.read()){
dflet 0:50cedd586816 138 ucLEDStatus = 1;
dflet 0:50cedd586816 139 }else{
dflet 0:50cedd586816 140 ucLEDStatus = 0;
dflet 0:50cedd586816 141 }
dflet 0:50cedd586816 142 break;
dflet 0:50cedd586816 143 }
dflet 0:50cedd586816 144 case MCU_ORANGE_LED_GPIO:
dflet 0:50cedd586816 145 {
dflet 0:50cedd586816 146 if(GPIO_LED2.read()){
dflet 0:50cedd586816 147 ucLEDStatus = 1;
dflet 0:50cedd586816 148 }else{
dflet 0:50cedd586816 149 ucLEDStatus = 0;
dflet 0:50cedd586816 150 }
dflet 0:50cedd586816 151 break;
dflet 0:50cedd586816 152 }
dflet 0:50cedd586816 153 case MCU_RED_LED_GPIO:
dflet 0:50cedd586816 154 {
dflet 0:50cedd586816 155 if(GPIO_LED1.read()){
dflet 0:50cedd586816 156 ucLEDStatus = 1;
dflet 0:50cedd586816 157 }else{
dflet 0:50cedd586816 158 ucLEDStatus = 0;
dflet 0:50cedd586816 159 }
dflet 0:50cedd586816 160 break;
dflet 0:50cedd586816 161 }
dflet 0:50cedd586816 162 default:
dflet 0:50cedd586816 163 ucLEDStatus = 0;
dflet 0:50cedd586816 164 }
dflet 0:50cedd586816 165 return ucLEDStatus;
dflet 0:50cedd586816 166 }
dflet 0:50cedd586816 167
dflet 0:50cedd586816 168 //*****************************************************************************
dflet 0:50cedd586816 169 //
dflet 0:50cedd586816 170 //! Toggle the Led state
dflet 0:50cedd586816 171 //!
dflet 0:50cedd586816 172 //! \param ledNum is the LED Number
dflet 0:50cedd586816 173 //!
dflet 0:50cedd586816 174 //! \return none
dflet 0:50cedd586816 175 //!
dflet 0:50cedd586816 176 //! \brief Toggles a board LED
dflet 0:50cedd586816 177 //
dflet 0:50cedd586816 178 //*****************************************************************************
dflet 0:50cedd586816 179 void GPIO_IF_LedToggle(unsigned char ucLedNum)
dflet 0:50cedd586816 180 {
dflet 0:50cedd586816 181
dflet 0:50cedd586816 182 unsigned char ucLEDStatus = GPIO_IF_LedStatus(ucLedNum);
dflet 0:50cedd586816 183 if(ucLEDStatus == 1)
dflet 0:50cedd586816 184 {
dflet 0:50cedd586816 185 GPIO_IF_LedOff(ucLedNum);
dflet 0:50cedd586816 186 }
dflet 0:50cedd586816 187 else
dflet 0:50cedd586816 188 {
dflet 0:50cedd586816 189 GPIO_IF_LedOn(ucLedNum);
dflet 0:50cedd586816 190 }
dflet 0:50cedd586816 191 }
dflet 0:50cedd586816 192