Other Parts Discussed in Thread: CC3200, HDC1050
Hi,
I am working around with CC3200 websock_camera example and i am having some troubles in function InitCameraComponents: I can connect to the soft AP mysimplelink-<MAC ADRR> and open the url 192.168.1.1/camera_demo.html, then open a websocket to the CC3200, everything works fine. But i cant receive any images from the camera, i got stuck in function CameraSensorInit() in InitCameraComponents(). When i dig deeper, i find out there is a problem with
I2CBufferWrite in for loop.
:
static long RegLstWrite(s_RegList *pRegLst, unsigned long ulNofItems) {
unsigned long ulNdx;
unsigned short usTemp;
unsigned char i;
unsigned char ucBuffer[20];
unsigned long ulSize;
long lRetVal = -1;
if (pRegLst == NULL) {
UART_PRINT("\r\nDebug InitCameraComponents - 1\r\n");
return RET_ERROR;
}
for (ulNdx = 0; ulNdx < ulNofItems; ulNdx++) {
if (pRegLst->ucPageAddr == 100) {
// PageAddr == 100, insret a delay equal to reg value
MT9D111Delay(pRegLst->usValue * 80000 / 3);
UART_PRINT("\r\nDebug InitCameraComponents - 2\r\n");
} else if (pRegLst->ucPageAddr == 111) {
UART_PRINT("\r\nDebug InitCameraComponents - 3\r\n");
// PageAddr == 111, wait for specified register value
do {
ucBuffer[0] = pRegLst->ucRegAddr;
lRetVal = I2CBufferWrite(CAM_I2C_SLAVE_ADDR, ucBuffer, 1, 1);
ASSERT_ON_ERROR(lRetVal);
if (I2CBufferRead(CAM_I2C_SLAVE_ADDR, ucBuffer, 2, 1)) {
return RET_ERROR;
}
usTemp = ucBuffer[0] << 8;
usTemp |= ucBuffer[1];
} while (usTemp != pRegLst->usValue);
} else {
UART_PRINT("\r\nDebug InitCameraComponents - 4\r\n");
// Set the page
ucBuffer[0] = SENSOR_PAGE_REG;
ucBuffer[1] = 0x00;
ucBuffer[2] = (unsigned char) (pRegLst->ucPageAddr);
//
// ==> The following I2CBufferWrite never complete
//
if (0 != I2CBufferWrite(CAM_I2C_SLAVE_ADDR, ucBuffer, 3,
I2C_SEND_STOP)) {
UART_PRINT("\r\nDebug InitCameraComponents - 5\r\n");
return RET_ERROR;
}
Please help me to solve this problem.
Thank you very much.
Regards,
N.T