LPT-порт
Работа с LPT-портом происходит только в процедуре lptThread(), в отдельном потоке, ПРИ УСЛОВИИ успешно загруженой библиотеки InpOut32.DLL, в противном случае - тесты 1-5 недоступны.
Процедура запускается из главной процедуры Тестирования - TestProc() и самостоятельно завершает свою деятельность, когда снимается флаг STATUS_TESTING в переменной gStatus.
Выходы ПЗЗМ подключаются к LPT-порту к контактам N10-N13 и N32, согласно комментарию к этой процедуре.
| // процедура, считывающая с LPT-порта в отдельном потоке |
int WINAPI lptThread(){
short b;
/* LPT Status Byte
N11 1xxx xxxx "3Io -"
N10 x0xx xxxx "3Io +"
N12 xx0x xxxx "3Uo +"
N13 xxx0 xxxx "3Uo -"
N32 xxxx 0xxx "3Uo НЧ"
AllWorkByte 1000 0xxx - 0x80
AllRestByte 0111 1xxx - 0x7F
*/
while( gStatus& STATUS_TESTING ){
if( gStatus& STATUS_WAVING ){
b = Inp32(0x379); // Читаем из LPT-порта
if( !(b& 0x10) ) TestInc( &U3Uom, AMP4);
if( !(b& 0x20) ) TestInc( &U3Uop, AMP3);
if( !(b& 0x40) ) TestInc( &U3Iop, AMP2);
if( (b& 0x80) ) TestInc( &U3Iom, AMP1);
if( !(b& 0x08) ) TestInc( &U3Uo, AMP5);
}
}
return 1;
}
|