在使用simulink realtime(xpc)调用pci1724输出电压时,给某一端口电压值,结果所有端口都输出了这一电压值。查看了手册,是没有办法实现给不同端口不通电压值吗?
赋值代码如下:
rl32eOutpB((unsigned short)0xD004,0); /* 直接输出*/
for (i=0;i<8;i++) {
if (i == 0) {
y = ssGetInputPortRealSignalPtrs(S, 0);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1105921 + x * 2));
}
else if (i == 1) {
y = ssGetInputPortRealSignalPtrs(S, 1);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1171457 + x * 2));
}
else if (i == 2) {
y = ssGetInputPortRealSignalPtrs(S, 2);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1236993 + x * 2));
}
else if (i == 3) {
y = ssGetInputPortRealSignalPtrs(S, 3);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1302529 + x * 2));
}
else if (i == 4) {
y = ssGetInputPortRealSignalPtrs(S, 4);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1368065 + x * 2));
}
else if (i == 5) {
y = ssGetInputPortRealSignalPtrs(S, 5);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1433601 + x * 2));
}
else if (i == 6) {
y = ssGetInputPortRealSignalPtrs(S, 6);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1499137 + x * 2));
}
else {
y = ssGetInputPortRealSignalPtrs(S, 7);
x = (int)(*y[0] * 204);
rl32eOutpDW((unsigned short)0xD000, (unsigned short)(int)(1564673 + x * 2));
}
}
说明手册描写如下:
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。
您好,解决了么?我们实验室现在也在用xpc调用,和您出现了一样的情况
我有写好的验证成功的PCI1711的DA和AD驱动 可以交流