Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.57 KB | None | 0 0
  1. /**
  2. *
  3. * @file main.c
  4. *
  5. * @brief DLPC350 configuration demo application
  6. *
  7. * @note:
  8. *
  9. * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
  10. * ALL RIGHTS RESERVED
  11. *
  12. *
  13. */
  14.  
  15. #include "dlpc350_common.h"
  16. #include "dlpc350_error.h"
  17. #include "dlpc350_flashDevice.h"
  18. #include "dlpc350_BMPParser.h"
  19. #include "dlpc350_firmware.h"
  20. #include "dlpc350_api.h"
  21.  
  22.  
  23. int Demo_PatternSequenceLegacy()
  24. {
  25.     unsigned char data[2];
  26.     unsigned int valStatus;
  27.  
  28.  
  29.     //Test of pattern Sequence Mode
  30.     if(DLPC350_SetMode(true) < 0)
  31.     {
  32.         DEBUG_ERR("DLPC350_SetMode() failed\n");
  33.         return -1;
  34.     }
  35.  
  36.     if(DLPC350_SetPatternDisplayMode(false) < 0)
  37.     {
  38.         DEBUG_ERR("DLPC350_SetPatternDisplayMode() failed\n");
  39.         return -1;
  40.     }
  41.  
  42.     if(DLPC350_PatternDisplayStartStopPause(0)<0)
  43.     {
  44.         DEBUG_ERR("DLPC350_PatternDisplayStartStopPause() failed\n");
  45.         return -1;
  46.     }
  47.  
  48.     if(DLPC350_SetPatternTriggerMode(1) < 0)
  49.     {
  50.         DEBUG_ERR("DLPC350_SetPatternTriggerMode() failed\n");
  51.         return -1;
  52.     }
  53.  
  54.  
  55.     if(DLPC350_SetPatternConfig(6,true,6,2)<0)
  56.     {
  57.         DEBUG_ERR("DLPC350_SetPatternConfig() failed\n");
  58.         return -1;
  59.     }
  60.  
  61.     if(DLPC350_SetExposure_FramePeriod(500000,500000) < 0)
  62.     {
  63.         DEBUG_ERR("DLPC350_SetExposure_FramePeriod() failed\n");
  64.         return -1;
  65.     }
  66.  
  67.     DLPC350_ClearPatLut();
  68.  
  69.     //DLPC350_AddToPatLut(int TrigType, int PatNum,int BitDepth,int LEDSelect,bool InvertPat, bool InsertBlack,bool BufSwap, bool trigOutPrev)
  70.     if(DLPC350_AddToPatLut(0,0,8,1,false,true,true,false)<0)
  71.     {
  72.         DEBUG_ERR("0 - DLPC350_AddToPatLut() failed\n");
  73.         return -1;
  74.     }
  75.  
  76.     if(DLPC350_AddToPatLut(0,1,8,2,false,true,false,false)<0)
  77.     {
  78.         DEBUG_ERR("1 - DLPC350_AddToPatLut() failed\n");
  79.         return -1;
  80.     }
  81.  
  82.     if(DLPC350_AddToPatLut(0,2,8,4,false,true,false,false)<0)
  83.     {
  84.         DEBUG_ERR("2 - DLPC350_AddToPatLut() failed\n");
  85.         return -1;
  86.     }
  87.  
  88.     if(DLPC350_AddToPatLut(0,0,8,1,false,true,true,false)<0)
  89.     {
  90.         DEBUG_ERR("3 - DLPC350_AddToPatLut() failed\n");
  91.         return -1;
  92.     }
  93.  
  94.     if(DLPC350_AddToPatLut(0,1,8,2,false,true,false,false)<0)
  95.     {
  96.         DEBUG_ERR("4 - DLPC350_AddToPatLut() failed\n");
  97.         return -1;
  98.     }
  99.  
  100.     if(DLPC350_AddToPatLut(0,2,8,4,false,true,false,false)<0)
  101.     {
  102.         DEBUG_ERR("5 - DLPC350_AddToPatLut() failed\n");
  103.         return -1;
  104.     }
  105.  
  106.     if(DLPC350_SendPatLut()<0)
  107.     {
  108.         DEBUG_ERR("DLPC350_SendPatLut() failed\n");
  109.         return -1;
  110.     }
  111.  
  112.     //Send image LUT
  113.     data[0] = 0x01;
  114.     data[1] = 0x02;
  115.  
  116.     if(DLPC350_SendImageLut(&data[0],2)<0)
  117.     {
  118.         DEBUG_ERR("DLPC350_SendImageLut() failed\n");
  119.         return -1;
  120.     }
  121.  
  122.     //Validate data
  123.     if(DLPC350_ValidatePatLutData(&valStatus)<0)
  124.     {
  125.         DEBUG_ERR("DLPC350_ValidatePatLutData() failed\n");
  126.         return -1;
  127.     }
  128.  
  129.     if(valStatus)
  130.     {
  131.         DEBUG_ERR("Pat Seq Validation failed\n");
  132.         return -1;
  133.     }
  134.     else if(DLPC350_PatternDisplayStartStopPause(2)<0)
  135.     {
  136.         DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(2) failed\n");
  137.         return -1;
  138.     }
  139.     else
  140.     {
  141.         printf("Hit any key to contiue...\n");
  142.         getchar();
  143.         if(DLPC350_PatternDisplayStartStopPause(0)<0)
  144.         {
  145.             DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(0) failed\n");
  146.             return -1;
  147.         }
  148.     }
  149.     return 0;
  150. }
  151.  
  152. int Demo_PatternSequence()
  153. {
  154.     unsigned char data[2];
  155.     unsigned int valStatus;
  156.  
  157.  
  158.     //Test of pattern Sequence Mode
  159.     if(DLPC350_SetMode(true) < 0)
  160.     {
  161.         DEBUG_ERR("DLPC350_SetMode() failed\n");
  162.         return -1;
  163.     }
  164.  
  165.     if(DLPC350_SetPatternDisplayMode(false) < 0)
  166.     {
  167.         DEBUG_ERR("DLPC350_SetPatternDisplayMode() failed\n");
  168.         return -1;
  169.     }
  170.  
  171.     if(DLPC350_PatternDisplayStartStopPause(0)<0)
  172.     {
  173.         DEBUG_ERR("DLPC350_PatternDisplayStartStopPause() failed\n");
  174.         return -1;
  175.     }
  176.  
  177.     if(DLPC350_SetPatternTriggerMode(3) < 0)
  178.     {
  179.         DEBUG_ERR("DLPC350_SetPatternTriggerMode() failed\n");
  180.         return -1;
  181.     }
  182.  
  183.     if(DLPC350_SetVarExpPatternConfig(6,6,2,true)<0)
  184.     {
  185.         DEBUG_ERR("DLPC350_SetPatternConfig() failed\n");
  186.         return -1;
  187.     }
  188.  
  189.     DLPC350_ClearExpLut();
  190.  
  191.     //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)
  192.     if(DLPC350_AddToExpLut(0,0,8,1,false,true,true,false,100000,100000)<0)
  193.     {
  194.         DEBUG_ERR("0 - DLPC350_AddToExpLut() failed\n");
  195.         return -1;
  196.     }
  197.  
  198.     if(DLPC350_AddToExpLut(0,1,8,2,false,true,false,false,200000,200000)<0)
  199.     {
  200.         DEBUG_ERR("1 - DLPC350_AddToExpLut() failed\n");
  201.         return -1;
  202.     }
  203.  
  204.     if(DLPC350_AddToExpLut(0,2,8,4,false,true,false,false,400000,400000)<0)
  205.     {
  206.         DEBUG_ERR("2 - DLPC350_AddToExpLut() failed\n");
  207.         return -1;
  208.     }
  209.  
  210.     if(DLPC350_AddToExpLut(0,0,8,1,false,true,true,false,800000,800000)<0)
  211.     {
  212.         DEBUG_ERR("3 - DLPC350_AddToExpLut() failed\n");
  213.         return -1;
  214.     }
  215.  
  216.     if(DLPC350_AddToExpLut(0,1,8,2,false,true,false,false,1600000,1600000)<0)
  217.     {
  218.         DEBUG_ERR("4 - DLPC350_AddToExpLut() failed\n");
  219.         return -1;
  220.     }
  221.  
  222.     if(DLPC350_AddToExpLut(0,2,8,4,false,true,false,false,3200000,3200000)<0)
  223.     {
  224.         DEBUG_ERR("5 - DLPC350_AddToExpLut() failed\n");
  225.         return -1;
  226.     }
  227.  
  228.     if(DLPC350_SendVarExpPatLut()<0)
  229.     {
  230.         DEBUG_ERR("DLPC350_SendVarExpPatLut() failed\n");
  231.         return -1;
  232.     }
  233.  
  234.     //Send image LUT
  235.     data[0] = 0x01;
  236.     data[1] = 0x02;
  237.  
  238.     if(DLPC350_SendVarExpImageLut(&data[0],2)<0)
  239.     {
  240.         DEBUG_ERR("DLPC350_SendVarExpImageLut() failed\n");
  241.         return -1;
  242.     }
  243.  
  244.     //Validate data
  245.     if(DLPC350_ValidatePatLutData(&valStatus)<0)
  246.     {
  247.         DEBUG_ERR("DLPC350_ValidatePatLutData() failed\n");
  248.         return -1;
  249.     }
  250.  
  251.     if(valStatus)
  252.     {
  253.         DEBUG_ERR("Pat Seq Validation failed - 0x%02X\n",valStatus);
  254.         return -1;
  255.     }
  256.     else if(DLPC350_PatternDisplayStartStopPause(2)<0)
  257.     {
  258.         DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(2) failed\n");
  259.         return -1;
  260.     }
  261.     else
  262.     {
  263.         printf("Hit any key to contiue...\n");
  264.         getchar();
  265.         if(DLPC350_PatternDisplayStartStopPause(0)<0)
  266.         {
  267.             DEBUG_ERR("DLPC350_PatternDisplayStartStopPause(0) failed\n");
  268.             return -1;
  269.         }
  270.     }
  271.  
  272.     return 0;
  273. }
  274.  
  275.  
  276. int main(int argc, char *argv[])
  277. {
  278.     unsigned int App_ver;
  279.     unsigned int API_ver;
  280.     unsigned int SWConfig_ver;
  281.     unsigned int SeqConfig_ver;
  282.  
  283. #if 0
  284.     // Test USB interface
  285.     // Tested with https://github.com/signal11/hidapi
  286.     // A Simple library for communicating with USB and Bluetooth HID devices
  287.     // on Linux, Mac, and Windows
  288.     if(DLPC350_SetCommType(DLPC350_COM_USB) < 0)
  289.     {
  290.         DEBUG_ERR("Unable to setup USB connection\n");
  291.         exit(0);
  292.     }
  293.     else
  294.         DEBUG_MSG("DLPC350_SetCommType(DLPC350_COM_USB) success\n");
  295.         DEBUG_MSG("DLPC350_Exit() success\n");
  296. #else
  297.     // Test I2C interface
  298.     if(DLPC350_SetCommType(DLPC350_COM_I2C) < 0)
  299.     {
  300.         DEBUG_ERR("Unable to setup I2C connection\n");
  301.         exit(0);
  302.     }
  303.     else
  304.         DEBUG_MSG("DLPC350_SetCommType(DLPC350_COM_I2C) success\n");
  305. #endif
  306.  
  307.     if(DLPC350_GetVersion(&App_ver,&API_ver,&SWConfig_ver,&SeqConfig_ver) < 0)
  308.         DEBUG_ERR("DLPC350_GetVersion() Failed!!\n");
  309.     else
  310.         printf("\nDLPC350 AppVer[Maj.Min.Pat]-%d.%d.%d APIVer[Maj.Min.Pat]-%d.%d.%d\n",( App_ver>>24 & 0xff),\
  311.                ( App_ver>>16 & 0xff),\
  312.                ( App_ver  & 0xffff),\
  313.                ( API_ver>>24 & 0xff),\
  314.                ( API_ver>>16 & 0xff),\
  315.                ( API_ver & 0xffff));
  316.  
  317.     //Legacy Pattern Sequence
  318.     printf("\n\nDemo_PatternSequenceLegacy()\n");
  319.     if(Demo_PatternSequenceLegacy()<0)
  320.         DEBUG_ERR("Demo_PatternSequenceLegacy() Failed!!\n");
  321.  
  322.     //Variable Exposure Pattern Sequence
  323.     printf("\n\nDemo_PatternSequence()\n");
  324.     if(Demo_PatternSequence()<0)
  325.         DEBUG_ERR("Demo_PatternSequence() Failed!!\n");
  326.  
  327.     //Back to video mode
  328.     if(DLPC350_SetMode(false)<0)
  329.     {
  330.         DEBUG_ERR("DLPC350_SetMode() failed\n");
  331.         return -1;
  332.     }
  333.  
  334.     if(DLPC350_Exit()<0)
  335.         DEBUG_ERR("DLPC350_Exit() Failed!!\n");
  336.     else
  337.         DEBUG_MSG("DLPC350_Exit() success\n");
  338.  
  339.     return 0;
  340. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement