Dlp4500如何使用internal trigger进行内部触发?

目前我可以在pattern sequence 模式下利用J11的pin1实现external trigger的外部触发,但考虑到利用vs实现触发控制,因此我想利用internal trigger实现pattern sequence 模式下的内部触发,但是在源代码中一直没有找到发射内部触发信号的相关函数;也可能是我对内部触发的理解有所偏差,希望有了解的朋友能够予以解答和帮助,谢谢!

3 个回复

  • 参考DLPC350中dlpc350_API中
    int DLPC350_AddToPatLut(int TrigType, int PatNum,int BitDepth,int LEDSelect,bool InvertPat, bool InsertBlack,bool BufSwap, bool trigOutPrev)


    * @param TrigType - I - Select the trigger type for the pattern
    * 0 = Internal trigger
    * 1 = External positive
    * 2 = External negative
    * 3 = No Input Trigger (Continue from previous; Pattern still has full exposure time)
    * 0x3FF = Full Red Foreground color intensity


    0就是Internal Trigger

    数字微镜,空间光调制器,SLM; jeremy-wu@ti.com;13661730975

  • 回复 Jeremy Wu:

    您好,你给出的应该是pattern sequence 下如何设置内部触发模式吧,我想知道我应该如何控制内部信号的发射,,就像控制外部触发信号那样在我需要的时候发射信号,准确的实现下一帧的投影。
  • 回复 william yi:

    点击Play,系统就输出信号Pattern.但是前面有一序列的过程, PATTERN图片整理排列,和触发信号的插入,曝光时间的设置等.
    在 mainwindow.cpp中有详细说明.

    Validate:
    void MainWindow::on_pushButton_ValidatePatSeq_clicked()
    {
    int i = 0;
    unsigned int status;
    bool ready;

    if((ui->radioButton_SLMode->isChecked() == false) && (ui->radioButton_VariableExpSLMode->isChecked() == false))
    {
    ShowError("Please change operating mode to Pattern Sequence before validating sequence");
    return;
    }

    //if pattern sequence is already running it must be stopped first
    emit on_pushButton_PatSeqCtrlStop_clicked();

    //Clear the flags
    ui->pushButton_PatSeqValIndExpOOR->setEnabled(false);
    ui->pushButton_PatSeqValIndPatNumOOR->setEnabled(false);
    ui->pushButton_PatSeqValIndTrigOutOverlap->setEnabled(false);
    ui->pushButton_PatSeqValIndBlkVecMiss->setEnabled(false);
    ui->pushButton_PatSeqValPatPeriodShort->setEnabled(false);
    ui->pushButton_PatSeqCtrlStart->setEnabled(false);
    ui->pushButton_PatSeqCtrlPause->setEnabled(false);
    ui->pushButton_PatSeqCtrlStop->setEnabled(false);


    if(DLPC350_StartPatLutValidate())
    {
    ShowError("Error validating LUT data");
    return;
    }

    QEventLoop loop;

    do
    {
    if(DLPC350_CheckPatLutValidate(&ready,&status) < 0)
    {
    ShowError("Error validating LUT data");
    return;
    }

    if(ready)
    {
    break;
    }
    else
    {
    QTimer::singleShot(1000, &loop, SLOT(quit()));
    loop.exec();
    }

    if(i++ > MAX_NUM_RETRIES)
    break;
    } while(1);

    ui->pushButton_PatSeqValIndExpOOR->setEnabled((status & BIT0) == BIT0);
    ui->pushButton_PatSeqValIndPatNumOOR->setEnabled((status & BIT1) == BIT1);
    ui->pushButton_PatSeqValIndTrigOutOverlap->setEnabled((status & BIT2) == BIT2);
    ui->pushButton_PatSeqValIndBlkVecMiss->setEnabled((status & BIT3) == BIT3);
    ui->pushButton_PatSeqValPatPeriodShort->setEnabled((status & BIT4) == BIT4);
    //Except BIT0 and BIT1 flags enable pattern sequence
    if(!(status & BIT0) && !(status & BIT1))
    {
    ui->pushButton_PatSeqValStatus->setEnabled(true);
    ui->pushButton_PatSeqCtrlStart->setEnabled(true);
    ui->pushButton_PatSeqCtrlPause->setEnabled(true);
    ui->pushButton_PatSeqCtrlStop->setEnabled(true);
    }
    else
    {
    ui->pushButton_PatSeqValStatus->setEnabled(false);
    ui->pushButton_PatSeqCtrlStart->setEnabled(false);
    ui->pushButton_PatSeqCtrlPause->setEnabled(false);
    ui->pushButton_PatSeqCtrlStop->setEnabled(false);
    }

    }

    再是
    void MainWindow::on_pushButton_PatSeqCtrlStart_clicked()
    {
    int i = 0;
    unsigned int patMode;
    DLPC350_PatternDisplay(2);
    }


    开始出PATTERN.

    数字微镜,空间光调制器,SLM; jeremy-wu@ti.com;13661730975