Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @file main.c
- *
- * @brief DLPC350 configuration demo application
- *
- * @note:
- *
- * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
- * ALL RIGHTS RESERVED
- *
- *
- */
- #include "dlpc350_common.h"
- #include "dlpc350_error.h"
- #include "dlpc350_flashDevice.h"
- #include "dlpc350_BMPParser.h"
- #include "dlpc350_firmware.h"
- #include "dlpc350_api.h"
- int Demo_PatternSequenceLegacy()
- {
- unsigned char data[2];
- unsigned int valStatus;
- //Test of pattern Sequence Mode
- if(DLPC350_SetMode(true) < 0)
- {
- DEBUG_ERR("DLPC350_SetMode() failed\n");
- return -1;
- }
- if(DLPC350_SetPatternDisplayMode(false) < 0)
- {
- DEBUG_ERR("DLPC350_SetPatternDisplayMode() failed\n");
- return -1;
- }
- if(DLPC350_PatternDisplayStartStopPause(0)<0)
- {
- DEBUG_ERR("DLPC350_PatternDisplayStartStopPause() failed\n");
- return -1;
- }
- if(DLPC350_SetPatternTriggerMode(1) < 0)
- {
- DEBUG_ERR("DLPC350_SetPatternTriggerMode() failed\n");
- return -1;
- }
- if(DLPC350_SetPatternConfig(6,true,6,2)<0)
- {
- DEBUG_ERR("DLPC350_SetPatternConfig() failed\n");
- return -1;
- }
- if(DLPC350_SetExposure_FramePeriod(500000,500000) < 0)
- {
- DEBUG_ERR("DLPC350_SetExposure_FramePeriod() failed\n");
- return -1;
- }
- DLPC350_ClearPatLut();
- //DLPC350_AddToPatLut(int TrigType, int PatNum,int BitDepth,int LEDSelect,bool InvertPat, bool InsertBlack,bool BufSwap, bool trigOutPrev)
- if(DLPC350_AddToPatLut(0,0,8,1,false,true,true,false)<0)
- {
- DEBUG_ERR("0 - DLPC350_AddToPatLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToPatLut(0,1,8,2,false,true,false,false)<0)
- {
- DEBUG_ERR("1 - DLPC350_AddToPatLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToPatLut(0,2,8,4,false,true,false,false)<0)
- {
- DEBUG_ERR("2 - DLPC350_AddToPatLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToPatLut(0,0,8,1,false,true,true,false)<0)
- {
- DEBUG_ERR("3 - DLPC350_AddToPatLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToPatLut(0,1,8,2,false,true,false,false)<0)
- {
- DEBUG_ERR("4 - DLPC350_AddToPatLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToPatLut(0,2,8,4,false,true,false,false)<0)
- {
- DEBUG_ERR("5 - DLPC350_AddToPatLut() failed\n");
- return -1;
- }
- if(DLPC350_SendPatLut()<0)
- {
- DEBUG_ERR("DLPC350_SendPatLut() failed\n");
- return -1;
- }
- //Send image LUT
- data[0] = 0x01;
- data[1] = 0x02;
- if(DLPC350_SendImageLut(&data[0],2)<0)
- {
- DEBUG_ERR("DLPC350_SendImageLut() failed\n");
- return -1;
- }
- //Validate data
- if(DLPC350_ValidatePatLutData(&valStatus)<0)
- {
- DEBUG_ERR("DLPC350_ValidatePatLutData() failed\n");
- return -1;
- }
- if(valStatus)
- {
- DEBUG_ERR("Pat Seq Validation failed\n");
- return -1;
- }
- else if(DLPC350_PatternDisplayStartStopPause(2)<0)
- {
- DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(2) failed\n");
- return -1;
- }
- else
- {
- printf("Hit any key to contiue...\n");
- getchar();
- if(DLPC350_PatternDisplayStartStopPause(0)<0)
- {
- DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(0) failed\n");
- return -1;
- }
- }
- return 0;
- }
- int Demo_PatternSequence()
- {
- unsigned char data[2];
- unsigned int valStatus;
- //Test of pattern Sequence Mode
- if(DLPC350_SetMode(true) < 0)
- {
- DEBUG_ERR("DLPC350_SetMode() failed\n");
- return -1;
- }
- if(DLPC350_SetPatternDisplayMode(false) < 0)
- {
- DEBUG_ERR("DLPC350_SetPatternDisplayMode() failed\n");
- return -1;
- }
- if(DLPC350_PatternDisplayStartStopPause(0)<0)
- {
- DEBUG_ERR("DLPC350_PatternDisplayStartStopPause() failed\n");
- return -1;
- }
- if(DLPC350_SetPatternTriggerMode(3) < 0)
- {
- DEBUG_ERR("DLPC350_SetPatternTriggerMode() failed\n");
- return -1;
- }
- if(DLPC350_SetVarExpPatternConfig(6,6,2,true)<0)
- {
- DEBUG_ERR("DLPC350_SetPatternConfig() failed\n");
- return -1;
- }
- DLPC350_ClearExpLut();
- //int DLPC350_AddToExpLut(int TrigType, int PatNum,int BitDepth,int LEDSelect,bool InvertPat, bool InsertBlack,bool BufSwap, bool trigOutPrev, unsigned int exp_time_us, unsigned int ptn_frame_period_us)
- if(DLPC350_AddToExpLut(0,0,8,1,false,true,true,false,100000,100000)<0)
- {
- DEBUG_ERR("0 - DLPC350_AddToExpLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToExpLut(0,1,8,2,false,true,false,false,200000,200000)<0)
- {
- DEBUG_ERR("1 - DLPC350_AddToExpLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToExpLut(0,2,8,4,false,true,false,false,400000,400000)<0)
- {
- DEBUG_ERR("2 - DLPC350_AddToExpLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToExpLut(0,0,8,1,false,true,true,false,800000,800000)<0)
- {
- DEBUG_ERR("3 - DLPC350_AddToExpLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToExpLut(0,1,8,2,false,true,false,false,1600000,1600000)<0)
- {
- DEBUG_ERR("4 - DLPC350_AddToExpLut() failed\n");
- return -1;
- }
- if(DLPC350_AddToExpLut(0,2,8,4,false,true,false,false,3200000,3200000)<0)
- {
- DEBUG_ERR("5 - DLPC350_AddToExpLut() failed\n");
- return -1;
- }
- if(DLPC350_SendVarExpPatLut()<0)
- {
- DEBUG_ERR("DLPC350_SendVarExpPatLut() failed\n");
- return -1;
- }
- //Send image LUT
- data[0] = 0x01;
- data[1] = 0x02;
- if(DLPC350_SendVarExpImageLut(&data[0],2)<0)
- {
- DEBUG_ERR("DLPC350_SendVarExpImageLut() failed\n");
- return -1;
- }
- //Validate data
- if(DLPC350_ValidatePatLutData(&valStatus)<0)
- {
- DEBUG_ERR("DLPC350_ValidatePatLutData() failed\n");
- return -1;
- }
- if(valStatus)
- {
- DEBUG_ERR("Pat Seq Validation failed - 0x%02X\n",valStatus);
- return -1;
- }
- else if(DLPC350_PatternDisplayStartStopPause(2)<0)
- {
- DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(2) failed\n");
- return -1;
- }
- else
- {
- printf("Hit any key to contiue...\n");
- getchar();
- if(DLPC350_PatternDisplayStartStopPause(0)<0)
- {
- DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(0) failed\n");
- return -1;
- }
- }
- return 0;
- }
- int main(int argc, char *argv[])
- {
- unsigned int App_ver;
- unsigned int API_ver;
- unsigned int SWConfig_ver;
- unsigned int SeqConfig_ver;
- #if 0
- // Test USB interface
- // Tested with https://github.com/signal11/hidapi
- // A Simple library for communicating with USB and Bluetooth HID devices
- // on Linux, Mac, and Windows
- if(DLPC350_SetCommType(DLPC350_COM_USB) < 0)
- {
- DEBUG_ERR("Unable to setup USB connection\n");
- exit(0);
- }
- else
- DEBUG_MSG("DLPC350_SetCommType(DLPC350_COM_USB) success\n");
- DEBUG_MSG("DLPC350_Exit() success\n");
- #else
- // Test I2C interface
- if(DLPC350_SetCommType(DLPC350_COM_I2C) < 0)
- {
- DEBUG_ERR("Unable to setup I2C connection\n");
- exit(0);
- }
- else
- DEBUG_MSG("DLPC350_SetCommType(DLPC350_COM_I2C) success\n");
- #endif
- if(DLPC350_GetVersion(&App_ver,&API_ver,&SWConfig_ver,&SeqConfig_ver) < 0)
- DEBUG_ERR("DLPC350_GetVersion() Failed!!\n");
- else
- printf("\nDLPC350 AppVer[Maj.Min.Pat]-%d.%d.%d APIVer[Maj.Min.Pat]-%d.%d.%d\n",( App_ver>>24 & 0xff),\
- ( App_ver>>16 & 0xff),\
- ( App_ver & 0xffff),\
- ( API_ver>>24 & 0xff),\
- ( API_ver>>16 & 0xff),\
- ( API_ver & 0xffff));
- //Legacy Pattern Sequence
- printf("\n\nDemo_PatternSequenceLegacy()\n");
- if(Demo_PatternSequenceLegacy()<0)
- DEBUG_ERR("Demo_PatternSequenceLegacy() Failed!!\n");
- //Variable Exposure Pattern Sequence
- printf("\n\nDemo_PatternSequence()\n");
- if(Demo_PatternSequence()<0)
- DEBUG_ERR("Demo_PatternSequence() Failed!!\n");
- //Back to video mode
- if(DLPC350_SetMode(false)<0)
- {
- DEBUG_ERR("DLPC350_SetMode() failed\n");
- return -1;
- }
- if(DLPC350_Exit()<0)
- DEBUG_ERR("DLPC350_Exit() Failed!!\n");
- else
- DEBUG_MSG("DLPC350_Exit() success\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement