David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Thu Sep 10 17:56:09 2015 +0000
Revision:
19:3dd3e7f30f8b
Parent:
17:acc075ff3fcb
Child:
20:409ebd125b9c
Solved part of the problem with spi, looks like there is maybe a fault with the Seeed Arch Max, fault or by design i don't know, program seems to work fine on an STMF32407I (Waveshare) baord.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 //*****************************************************************************
dflet 0:50cedd586816 2 // main.c
dflet 0:50cedd586816 3 //
dflet 0:50cedd586816 4 // Reference code to demonstrate getting the current time using an NTP server.
dflet 0:50cedd586816 5 //
dflet 0:50cedd586816 6 // Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
dflet 0:50cedd586816 7 //
dflet 0:50cedd586816 8 //
dflet 0:50cedd586816 9 // Redistribution and use in source and binary forms, with or without
dflet 0:50cedd586816 10 // modification, are permitted provided that the following conditions
dflet 0:50cedd586816 11 // are met:
dflet 0:50cedd586816 12 //
dflet 0:50cedd586816 13 // Redistributions of source code must retain the above copyright
dflet 0:50cedd586816 14 // notice, this list of conditions and the following disclaimer.
dflet 0:50cedd586816 15 //
dflet 0:50cedd586816 16 // Redistributions in binary form must reproduce the above copyright
dflet 0:50cedd586816 17 // notice, this list of conditions and the following disclaimer in the
dflet 0:50cedd586816 18 // documentation and/or other materials provided with the
dflet 0:50cedd586816 19 // distribution.
dflet 0:50cedd586816 20 //
dflet 0:50cedd586816 21 // Neither the name of Texas Instruments Incorporated nor the names of
dflet 0:50cedd586816 22 // its contributors may be used to endorse or promote products derived
dflet 0:50cedd586816 23 // from this software without specific prior written permission.
dflet 0:50cedd586816 24 //
dflet 0:50cedd586816 25 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
dflet 0:50cedd586816 26 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dflet 0:50cedd586816 27 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
dflet 0:50cedd586816 28 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
dflet 0:50cedd586816 29 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dflet 0:50cedd586816 30 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dflet 0:50cedd586816 31 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
dflet 0:50cedd586816 32 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
dflet 0:50cedd586816 33 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
dflet 0:50cedd586816 34 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
dflet 0:50cedd586816 35 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dflet 0:50cedd586816 36 //
dflet 0:50cedd586816 37 //*****************************************************************************
dflet 0:50cedd586816 38
dflet 0:50cedd586816 39 //****************************************************************************
dflet 0:50cedd586816 40 //
dflet 0:50cedd586816 41 //! \addtogroup main
dflet 0:50cedd586816 42 //! @{
dflet 0:50cedd586816 43 //
dflet 0:50cedd586816 44 //****************************************************************************
dflet 0:50cedd586816 45
dflet 0:50cedd586816 46 #include "mbed.h"
dflet 0:50cedd586816 47
dflet 0:50cedd586816 48 // SimpleLink include
dflet 0:50cedd586816 49 #include "cc3100_simplelink.h"
dflet 0:50cedd586816 50 #include "cc3100.h"
dflet 0:50cedd586816 51
dflet 0:50cedd586816 52 /* Free-RTOS includes */
dflet 15:5433f9d94cd7 53 #include "FreeRTOS.h"
dflet 0:50cedd586816 54 #include "osi.h"
dflet 0:50cedd586816 55
dflet 0:50cedd586816 56 #include "cli_uart.h"
dflet 0:50cedd586816 57 #include "app_config.h"
dflet 0:50cedd586816 58 #include "myBoardInit.h"
dflet 17:acc075ff3fcb 59 #include "httpserverapp.h"
dflet 12:7d75ba5deed1 60 #include "camera_app.h"
dflet 0:50cedd586816 61
dflet 0:50cedd586816 62 using namespace mbed_cc3100;
dflet 0:50cedd586816 63
dflet 14:90603ea1e85b 64 extern DCMI_HandleTypeDef hdcmi;
dflet 14:90603ea1e85b 65 extern DMA_HandleTypeDef hdma_dcmi;
dflet 4:c27adffcfec2 66
dflet 1:1a80c1529aa3 67 /* Warning if pin changes are made below then the same changes have to be made in the following files.
dflet 0:50cedd586816 68 * httpserverapp.cpp
dflet 0:50cedd586816 69 * HttpCore.cpp
dflet 0:50cedd586816 70 * HttpSocket.cpp
dflet 0:50cedd586816 71 * HttpStatic.cpp
dflet 0:50cedd586816 72 * fPtr_func.cpp
dflet 19:3dd3e7f30f8b 73 * cc3100_spawn.cpp
dflet 0:50cedd586816 74 */
dflet 0:50cedd586816 75
dflet 0:50cedd586816 76 /* Off board leds */
dflet 0:50cedd586816 77 DigitalOut led1(PB_15);
dflet 0:50cedd586816 78 DigitalOut led2(PB_14);
dflet 0:50cedd586816 79 cc3100 _cc3100(NC, NC, PD_12, PD_13, PD_11, SPI(PB_5, PB_4, PB_3));//Seeed_Arch_Max irq, nHib, cs, mosi, miso, sck
dflet 0:50cedd586816 80
dflet 14:90603ea1e85b 81 static void Start_MCO1(void);
dflet 0:50cedd586816 82 void initLEDs(void);
dflet 0:50cedd586816 83 void toggleLed(int ind);
dflet 0:50cedd586816 84 static void DisplayBanner(char * AppName);
dflet 0:50cedd586816 85
dflet 0:50cedd586816 86 #define PRINT_BUF_LEN 128
dflet 0:50cedd586816 87 int8_t print_buf[PRINT_BUF_LEN];
dflet 0:50cedd586816 88
dflet 0:50cedd586816 89 //*****************************************************************************
dflet 0:50cedd586816 90 // LOCAL DEFINES
dflet 0:50cedd586816 91 //*****************************************************************************
dflet 0:50cedd586816 92 #define APP_NAME "WebSocket"
dflet 0:50cedd586816 93
dflet 0:50cedd586816 94 void initLEDs(void){
dflet 0:50cedd586816 95
dflet 0:50cedd586816 96 #if (THIS_BOARD == Seeed_Arch_Max)
dflet 0:50cedd586816 97 led1 = 0;
dflet 0:50cedd586816 98 led2 = 0;
dflet 0:50cedd586816 99 #endif
dflet 0:50cedd586816 100
dflet 0:50cedd586816 101 }
dflet 0:50cedd586816 102
dflet 14:90603ea1e85b 103 static void Start_MCO1()
dflet 14:90603ea1e85b 104 {
dflet 14:90603ea1e85b 105
dflet 14:90603ea1e85b 106 GPIO_InitTypeDef GPIO_InitStruct;
dflet 14:90603ea1e85b 107 __GPIOA_CLK_ENABLE();
dflet 14:90603ea1e85b 108
dflet 16:7e5aab2fabba 109 //Configure GPIO pin : GPIO_AF0_MCO PA8
dflet 16:7e5aab2fabba 110 GPIO_InitStruct.Pin = GPIO_PIN_8;
dflet 16:7e5aab2fabba 111 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
dflet 16:7e5aab2fabba 112 GPIO_InitStruct.Pull = GPIO_PULLUP;
dflet 16:7e5aab2fabba 113 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
dflet 14:90603ea1e85b 114 GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
dflet 14:90603ea1e85b 115 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
dflet 14:90603ea1e85b 116
dflet 17:acc075ff3fcb 117 #ifndef MT9D111_CAM
dflet 14:90603ea1e85b 118 /* MCO1 output 16MHz */
dflet 17:acc075ff3fcb 119 HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
dflet 17:acc075ff3fcb 120 #else
dflet 14:90603ea1e85b 121 /* MCO1 output 8MHz */
dflet 17:acc075ff3fcb 122 HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_2);
dflet 17:acc075ff3fcb 123 #endif
dflet 14:90603ea1e85b 124 wait_ms(500);
dflet 16:7e5aab2fabba 125
dflet 14:90603ea1e85b 126 }
dflet 14:90603ea1e85b 127
dflet 0:50cedd586816 128 void toggleLed(int ind){
dflet 0:50cedd586816 129
dflet 0:50cedd586816 130 if(ind == 1){
dflet 0:50cedd586816 131 led1 = !led1;
dflet 0:50cedd586816 132 }
dflet 0:50cedd586816 133 if(ind == 2){
dflet 0:50cedd586816 134 led2 = !led2;
dflet 0:50cedd586816 135 }
dflet 0:50cedd586816 136
dflet 0:50cedd586816 137 }
dflet 0:50cedd586816 138
dflet 0:50cedd586816 139 //*****************************************************************************
dflet 0:50cedd586816 140 //
dflet 0:50cedd586816 141 //! Application startup display on UART
dflet 0:50cedd586816 142 //!
dflet 0:50cedd586816 143 //! \param none
dflet 0:50cedd586816 144 //!
dflet 0:50cedd586816 145 //! \return none
dflet 0:50cedd586816 146 //!
dflet 0:50cedd586816 147 //*****************************************************************************
dflet 0:50cedd586816 148
dflet 0:50cedd586816 149 //#ifndef NOTERM
dflet 0:50cedd586816 150 static void
dflet 0:50cedd586816 151 DisplayBanner(char * AppName)
dflet 0:50cedd586816 152 {
dflet 0:50cedd586816 153
dflet 0:50cedd586816 154 Report("\n\n\n\r");
dflet 0:50cedd586816 155 Report(" *************************************************\n\r");
dflet 0:50cedd586816 156 Report(" CC3100 %s Application \n\r", AppName);
dflet 0:50cedd586816 157 Report(" *************************************************\n\r");
dflet 0:50cedd586816 158 Report("\n\n\n\r");
dflet 0:50cedd586816 159 }
dflet 0:50cedd586816 160 //#endif
dflet 0:50cedd586816 161
dflet 0:50cedd586816 162 //****************************************************************************
dflet 0:50cedd586816 163 // MAIN FUNCTION
dflet 0:50cedd586816 164 //****************************************************************************
dflet 0:50cedd586816 165 int main(void) {
dflet 16:7e5aab2fabba 166
dflet 16:7e5aab2fabba 167 int rv = 0;
dflet 0:50cedd586816 168
dflet 0:50cedd586816 169 //
dflet 0:50cedd586816 170 // Configuring UART
dflet 0:50cedd586816 171 //
dflet 0:50cedd586816 172 CLI_Configure();
dflet 14:90603ea1e85b 173
dflet 14:90603ea1e85b 174 #if defined OV5642_CAM
dflet 14:90603ea1e85b 175 Uart_Write((uint8_t*)"\n\rOV5642 Camera \n\r");
dflet 14:90603ea1e85b 176 #elif defined OV2640_CAM
dflet 14:90603ea1e85b 177 Uart_Write((uint8_t*)"\n\rOV2640 Camera \n\r");
dflet 14:90603ea1e85b 178 #elif defined MT9D111_CAM
dflet 14:90603ea1e85b 179 Uart_Write((uint8_t*)"\n\rMT9D111 Camera \n\r");
dflet 14:90603ea1e85b 180 #endif
dflet 14:90603ea1e85b 181
dflet 14:90603ea1e85b 182 /* Start Camera Master Clock */
dflet 14:90603ea1e85b 183 Start_MCO1();
dflet 14:90603ea1e85b 184
dflet 14:90603ea1e85b 185
dflet 14:90603ea1e85b 186
dflet 7:a069c1750fbc 187 initLEDs();
dflet 0:50cedd586816 188
dflet 17:acc075ff3fcb 189 //#ifndef NOTERM
dflet 0:50cedd586816 190 memset(print_buf, 0x00, PRINT_BUF_LEN);
dflet 0:50cedd586816 191 sprintf((char*) print_buf, " \r\nSystemCoreClock = %dMHz\r\n ", SystemCoreClock /1000000);
dflet 0:50cedd586816 192 rv = Uart_Write((uint8_t *) print_buf);
dflet 0:50cedd586816 193 if(rv < 0){
dflet 0:50cedd586816 194 while(1){
dflet 0:50cedd586816 195 toggleLed(1);
dflet 0:50cedd586816 196 wait(0.1);
dflet 0:50cedd586816 197 }
dflet 0:50cedd586816 198 }
dflet 0:50cedd586816 199
dflet 0:50cedd586816 200 //
dflet 0:50cedd586816 201 // Display Application Banner
dflet 0:50cedd586816 202 //
dflet 0:50cedd586816 203 DisplayBanner(APP_NAME);
dflet 0:50cedd586816 204
dflet 16:7e5aab2fabba 205 // createMutex();
dflet 15:5433f9d94cd7 206
dflet 0:50cedd586816 207 //#endif
dflet 0:50cedd586816 208
dflet 0:50cedd586816 209 //
dflet 0:50cedd586816 210 // Start the SimpleLink Host
dflet 0:50cedd586816 211 //
dflet 0:50cedd586816 212 VStartSimpleLinkSpawnTask(SPAWN_TASK_PRIORITY);
dflet 0:50cedd586816 213 //
dflet 0:50cedd586816 214 // Start the HttpServer Task
dflet 0:50cedd586816 215 //
dflet 0:50cedd586816 216 //
dflet 0:50cedd586816 217 osi_TaskCreate(HttpServerAppTask,
dflet 0:50cedd586816 218 "WebSocketApp",
dflet 0:50cedd586816 219 OSI_STACK_SIZE,
dflet 0:50cedd586816 220 NULL,
dflet 0:50cedd586816 221 HTTP_SERVER_APP_TASK_PRIORITY,
dflet 0:50cedd586816 222 NULL );
dflet 0:50cedd586816 223
dflet 14:90603ea1e85b 224 Uart_Write((uint8_t*)"HttpServerApp Initializing \n\r");
dflet 16:7e5aab2fabba 225
dflet 0:50cedd586816 226 //
dflet 0:50cedd586816 227 // Start the task scheduler
dflet 0:50cedd586816 228 //
dflet 0:50cedd586816 229 osi_start();
dflet 0:50cedd586816 230
dflet 0:50cedd586816 231 return 0;
dflet 0:50cedd586816 232 }
dflet 0:50cedd586816 233
dflet 4:c27adffcfec2 234
dflet 0:50cedd586816 235 //*****************************************************************************
dflet 0:50cedd586816 236 //
dflet 0:50cedd586816 237 // Close the Doxygen group.
dflet 0:50cedd586816 238 //! @}
dflet 0:50cedd586816 239 //
dflet 0:50cedd586816 240 //*****************************************************************************
dflet 0:50cedd586816 241
dflet 14:90603ea1e85b 242
dflet 14:90603ea1e85b 243
dflet 14:90603ea1e85b 244