This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DLPLCRC410EVM:DLPLCRC410EVM

Guru**** 2558250 points
Other Parts Discussed in Thread: DLP7000

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/dlp-products-group/dlp/f/dlp-products-forum/1464346/dlplcrc410evm-dlplcrc410evm

器件型号:DLPLCRC410EVM
主题中讨论的其他器件:DLP7000

工具与软件:

我遇到了类似的问题、因为我甚至无法使用 LoadData 函数在 DMD 上加载最简单的测试模式。 我是不是在误解什么?

#include
#include "D4100_USB.h"//包含 USB 函数的头文件
#include //每个 memset
#include
#include
使用命名空间 std;
使用命名空间 USB;
// Costanti DLP7000
#define DMD_WIDTH 1024 //像素
#define DMD_HEIGHT 768 //右归 totali
#define bytes_per_row (dmd_width / 8)// 128
#define MAX_ROWS_CHUNK 400 //马西莫 numero di rigue da cararicare per chiamata
#define DMDTYPE_DLP7000 1 // da GetDMDTType ()、tipicamente 1 (根据 DLP7000)


int main(){
//步骤1:获取已连接的设备数
short numDevices = GetNumDev();
Cout <<"Number of Connected devices:"<< numDevices << endl;

如果(numDevices <= 0){
COUT <<"未找到器件。 正在退出..." <<结束;
返回-1;
}

//步骤2:获取有关第一个设备的基本信息
short deviceNumber = 0;//第一个器件的索引
unsigned int firmwareRev = GetFirmwareRev (deviceNumber);
unsigned int driverRev = GetDriverRev (deviceNumber);
long dllRev = GetDLLRev ();
短 usbSpeed = GetUsbSpeed (deviceNumber);
短 dmdType = GetDMDTYPE (deviceNumber);
短电平= 0;
COUT <<"器件信息:"<< endl;
COUT <<"固件版本:"<< firmwareRev << endl;
COUT <<"驱动程序版本:"<< driverRev << endl;
COUT <<"DLL 修订版本:"<< dllRev << endl;
COUT <<"USB Speed:"<<(usbSpeed =0? "低":"高")<< endl;
COUT <<" DMD 类型:"<< dmdType << endl;

//第3步:清除 FIFO 并设置基本参数
COUT <<"清除 FIFO..." <<结束;
简短结果= ClearFifos (deviceNumber);
短阻塞模式= GetBlkMd (deviceNumber);
COUT <<"BlockMode:..."<< blockmode << endl;
/*
SetTPGEnable (1、deviceNumber);
SetPatternForce (1、deviceNumber);
SetPatternSelect (0x1、deviceNumber);
std::this_thread:sleep_for (std::chrono::秒(5));

SetPatternSelect (0x2、deviceNumber);
std::this_thread:sleep_for (std::chrono::秒(5));
SetPatternSelect (0x7、deviceNumber);
cout <<"aaa"<< endl;

if (result == 1){
COUT <<"已成功清除 FIFO。" <<结束;
}
否则{
COUT <<"无法清除 FIFO。" <<结束;
}

COUT <<"将块模式设置为11..." <<结束;

if (result == 1){
COUT <<"已成功设置块模式。" <<结束;
}
否则{
COUT <<"无法设置块模式。" <<结束;
}

COUT <<"将块地址设置为1000..." <<结束;
Result = SetBlkAd (1000、deviceNumber);
if (result == 1){
COUT <<"已成功设置块地址。" <<结束;
}
否则{
COUT <<"无法设置块地址"。 <<结束;
}
*/
//步骤3.b vero
/*
Short rowAddress = 27;// Riga da impostare

// Imposta il 行地址 a 27.
if (SetRowAddr (rowAddress、deviceNumber)=1){
COUT <<"Row Address impostato A:"<< rowAddress << endl;
}
否则{
cout <<"Errore durante l'impostazione del Row Address!" <<结束;
返回-1;
}

// Leggi il 行地址
Int currentRowAddress = GetRowAddr (deviceNumber);
if (currentRowAddress = rowAddress){// Supponiamo Che -1表示存在错误
COUT <<"行地址属性:"<< currentRowAddress << endl;
}
否则{
cout <<"Errore durante la lettura del Row Address!" <<结束;
}
*/

//步骤4:测试数据加载
// Configurazione iniziale.
ClearFifos(deviceNumber);
LoadControl (deviceNumber);
SetBlkMd (10、deviceNumber);//每次复位 multiplo di blockchi 时 Modalità
SetBlkAd (0000、deviceNumber);// Iniziamo con il blocco 0

// Dati per una Riga tutta 1 e una tutta 0
unsigned char rowAllOn[128];// 1024像素/ 8 = 128字节
unsigned char rowAllOff[128];

// Inizializziamo i dati.
memset (rowAllOn、0xFF、sizeof (rowAllOn));// Tutti i pixel on
memset (rowAllOff、0x00、sizeof (rowAllOff));// Tutti i pixel off

// Carichiamo alternativamente right on e off
对于(int j = 0;j < 16;j++){// per tute le right del DMD7000
SetWDT (1、deviceNumber);// Abilita Watchdog Timer
LoadControl (deviceNumber);// carica il controllo
SetRowMd (10、deviceNumber);// Modalità Riga 标准
SetNSFLIP (1、deviceNumber);// Nessun flip nord-sud

SetRowAddr (j、deviceNumber);//里加医院
cout <<"Caricamento Riga:"<< j << endl;

如果(j % 2 =0){
// Riga pari: carica tutti 1.
LoadData (rowAllOn、sizeof (rowAllOn)、dmdType、deviceNumber);
}
否则{
// Riga desridi: carica tutti 0
LoadData (rowAllOff、sizeof (rowAllOff)、dmdType、deviceNumber);
}
}


Cout <<"dimensioni rowAllON:"<< sizeof (rowAllOn)<< endl;

SetRST2BLKZ (0、deviceNumber);
SetRowAddr (0、deviceNumber);



//步骤5:检索当前行地址
short currentRowAddr = GetRowAddr (deviceNumber);
短 currentROwmode = GetRowMd (deviceNumber);
COUT <<"当前行地址:"<< currentRowAddr << endl;

COUT <<"测试已完成。" <<结束;
COUT << Current Row MD:"<< currentROwmode << endl;

COUT <<"测试已完成。" <<结束;
返回0;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、亚历山德罗、

    您是否有访问 LabView 的权限?  我有一个可以执行所有步骤的较旧的库/ VI。  我不能仅仅通过查看你的算法来判断。  如果您这样做、我可以获取文件。

    Fizix