David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dflet
Date:
Fri Jun 26 22:53:54 2015 +0000
Parent:
2:b92db44a29b4
Child:
4:c27adffcfec2
Commit message:
WIP commit 4

Changed in this revision

camera_app/camera_app.cpp Show annotated file Show diff for this revision Revisions of this file
camera_app/stm32f4xx_msp.c Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
utils/Led_config.cpp Show annotated file Show diff for this revision Revisions of this file
utils/Led_config.h Show annotated file Show diff for this revision Revisions of this file
--- a/camera_app/camera_app.cpp	Fri Jun 26 16:49:04 2015 +0000
+++ b/camera_app/camera_app.cpp	Fri Jun 26 22:53:54 2015 +0000
@@ -54,6 +54,7 @@
 #include "mt9d111.h"
 #include "i2cconfig.h"
 #include "cli_uart.h"
+#include "Led_config.h"
 
 using namespace mbed_cc3100;
 
@@ -358,15 +359,20 @@
     // Perform Image Capture 
     //
     Uart_Write((uint8_t*)"CaptureImage Start\n\r");
+    
+    HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
+    HAL_NVIC_EnableIRQ(DCMI_IRQn);
     HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)p_buffer, sizeof(g_image.g_image_buffer)); 
     
     /* Wait for frame */
     while ((DCMI->CR & DCMI_CR_CAPTURE) != 0) {
- 
+         GPIO_IF_LedToggle(MCU_RED_LED_GPIO);
     }
+    HAL_NVIC_DisableIRQ(DCMI_IRQn);
+    HAL_NVIC_DisableIRQ(DMA2_Stream1_IRQn);
     g_frame_end = 1;
     
-    Uart_Write((uint8_t*)"CaptureImage Complete\n\r");
+    Uart_Write((uint8_t*)"\n\rCaptureImage Complete\n\r");
     /* The frame is finished, but DMA still waiting
        for data because we set max frame size
        so we need to abort the DMA transfer here */
--- a/camera_app/stm32f4xx_msp.c	Fri Jun 26 16:49:04 2015 +0000
+++ b/camera_app/stm32f4xx_msp.c	Fri Jun 26 22:53:54 2015 +0000
@@ -98,7 +98,7 @@
     PB6     ------> DCMI_D5
     PB7     ------> DCMI_VSYNC 
     */
-    GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
+    GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
     GPIO_InitStruct.Pull = GPIO_NOPULL;
     GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
@@ -118,6 +118,14 @@
     GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
     GPIO_InitStruct.Alternate = GPIO_AF13_DCMI;
     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+    
+    /*Configure GPIO pin : PC9 */
+    GPIO_InitStruct.Pin = GPIO_PIN_9;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
 
     GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -147,7 +155,7 @@
 
   /* System interrupt init*/
     HAL_NVIC_SetPriority(DCMI_IRQn, 0, 0);
-    HAL_NVIC_EnableIRQ(DCMI_IRQn);
+//    HAL_NVIC_EnableIRQ(DCMI_IRQn);
   /* USER CODE BEGIN DCMI_MspInit 1 */
 //  Uart_Write((uint8_t*)"HAL_DCMI_MspInit complete \n\r");
   /* USER CODE END DCMI_MspInit 1 */
@@ -186,7 +194,7 @@
 
     HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_9|GPIO_PIN_10);
 
-    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8);
+    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_9|GPIO_PIN_8);
 
     HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
 
--- a/main.cpp	Fri Jun 26 16:49:04 2015 +0000
+++ b/main.cpp	Fri Jun 26 22:53:54 2015 +0000
@@ -97,7 +97,8 @@
   
   RCC_OscInitTypeDef RCC_OscInitStruct;
   RCC_ClkInitTypeDef RCC_ClkInitStruct;
-
+//  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;//Used for ov7670 test
+  
   __PWR_CLK_ENABLE();
 
   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
@@ -120,15 +121,25 @@
   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
   HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
   
+  //Used for ov7670 test
+//  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S;
+//  PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
+//  PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
+//  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
+  
   /* RCC_MCODIV_5 33.6MHz mco output on pin PC_9 (cam xclk) */
   /* RCC_MCODIV_4 42MHz mco output on pin PC_9 (cam xclk) */
   /* RCC_MCODIV_3 56MHz mco output on pin PC_9 (cam xclk) */
   HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_5);
+  //Used for ov7670 test
+  /* RCC_MCODIV_4 24MHz mco output on pin PC_9 (cam xclk) */
+//  HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_PLLI2SCLK, RCC_MCODIV_4);
 
   HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
-
-
-
+  
+  //Used for ov7670 test
+//  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
+  
 }
  
 void MX_DCMI_Init()
@@ -136,7 +147,7 @@
 
   hdcmi.Instance = DCMI;
   hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE;
-  hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_FALLING;
+  hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_RISING;//FALLING
   hdcmi.Init.VSPolarity = DCMI_VSPOLARITY_LOW;
   hdcmi.Init.HSPolarity = DCMI_HSPOLARITY_LOW;
   hdcmi.Init.CaptureRate = DCMI_CR_ALL_FRAME;
@@ -160,7 +171,7 @@
 
   /* DMA interrupt init */
   HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);
-  HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
+//  HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
 
 }
 
@@ -239,7 +250,9 @@
 int main(void) {
 
    int rv = 0;
+   
    SystemClock_Config();
+   
    //
    // Configuring UART
    //
--- a/utils/Led_config.cpp	Fri Jun 26 16:49:04 2015 +0000
+++ b/utils/Led_config.cpp	Fri Jun 26 22:53:54 2015 +0000
@@ -13,7 +13,7 @@
 //!
 //! \return none
 //!
-//! \brief  Turns a specific LED Off
+//! \brief  Turns a specific LED On
 //
 //*****************************************************************************
 void
--- a/utils/Led_config.h	Fri Jun 26 16:49:04 2015 +0000
+++ b/utils/Led_config.h	Fri Jun 26 22:53:54 2015 +0000
@@ -8,7 +8,7 @@
     NO_LED,
     led3 = 0x1, /* RED LED D7/GP9/Pin64 */
     led4 = 0x2, /* ORANGE LED D6/GP10/Pin1 */
-    led5 = 0x4  /* GREEN LED D5/GP11/Pin2 */
+    led5 = 0x3  /* GREEN LED D5/GP11/Pin2 */
 
 } ledEnum;
 
@@ -16,7 +16,7 @@
 typedef enum
 {
     NO_LED_IND = NO_LED,
-    MCU_SENDING_DATA_IND = led3,
+    MCU_SENDING_DATA_IND = 4,
     MCU_ASSOCIATED_IND, /* Device associated to an AP */
     MCU_IP_ALLOC_IND, /* Device acquired an IP */
     MCU_SERVER_INIT_IND, /* Device connected to remote server */
@@ -24,10 +24,10 @@
     MCU_ON_IND,              /* Device SLHost invoked successfully */
     MCU_EXECUTE_SUCCESS_IND, /* Task executed sucessfully */
     MCU_EXECUTE_FAIL_IND, /* Task execution failed */
-    MCU_RED_LED_GPIO,   /* GP09 for LED RED as per LP 3.0 */
-    MCU_ORANGE_LED_GPIO,/* GP10 for LED ORANGE as per LP 3.0 */
-    MCU_GREEN_LED_GPIO, /* GP11 for LED GREEN as per LP 3.0 */
-    MCU_ALL_LED_IND
+    MCU_RED_LED_GPIO = led3,   /* GP09 for LED RED as per LP 3.0 */
+    MCU_ORANGE_LED_GPIO = led4,/* GP10 for LED ORANGE as per LP 3.0 */
+    MCU_GREEN_LED_GPIO = led5, /* GP11 for LED GREEN as per LP 3.0 */
+    MCU_ALL_LED_IND = 12
 } ledNames;
 
 //*****************************************************************************