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; } |