在使用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));
}
}
说明手册描写如下: