powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Чтение из порта LPT
7 сообщений из 7, страница 1 из 1
Чтение из порта LPT
    #33340548
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В паскале при чтении порта в цикле Writeln(port[$378]) всегда цифра 4, хотя замыкаю D1 на GND. D1-D8 это входные данные ?
...
Рейтинг: 0 / 0
Чтение из порта LPT
    #33340550
Tov. Drujba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, в нете разводку LPT сложно найти?
...
Рейтинг: 0 / 0
Чтение из порта LPT
    #33340564
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tov. DrujbaА что, в нете разводку LPT сложно найти?
Корочу конкретно ножку 2
...
Рейтинг: 0 / 0
Чтение из порта LPT
    #33340594
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Физически это должно быть правильно.На D1-D8 высокие лог.уровни и при замыкании на GND состояние должно изменится. Я думаю может неправильно к порту обращаюсь ? Порт LPT свободный (Принтера НЕТ)
...
Рейтинг: 0 / 0
Чтение из порта LPT
    #33340687
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talgatВ паскале при чтении порта в цикле Writeln(port[$378]) всегда цифра 4, хотя замыкаю D1 на GND. D1-D8 это входные данные ?

данные на порту LPT это ВЫХОДНЫЕ данные... Их можно использовать как входные в моделях компов с некоторых пор... Другими словами, для чтения из порта у Вас сам порт должен поддерживать ДВУНАПРАВЛЕННЫЙ (увидеть просто на железе - либо сразу контроллер лапками выходит, либо двунаправленный шинник стоит, или просто буффер-защёлка) обмен данными и ничем этот функционал НЕ должен быть запрещён (BIOS, OS). Вот тоды Вы сможете "пощупать" порт.

Обычно, что бы программа "работала как танк" делают ввод НЕ на шине данных а на вспомогательных пинах LPT порта. Их там 5 штук должно быть... Ну и распределяют обычно 4 данные и один строб. Кидают байт по 4 бита...


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
Чтение из порта LPT
    #33340848
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовал 12 пин. Заработало. Правда вместо port пришлось использовать portw. Спасибо
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Чтение из порта LPT
    #35911919
anubys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот нашел эту тему, наверное она наиболее подходящая. Вообщем, есть программа, которая читает данные с LPT порта, используюя бибилиотеку Inpout32.dll. Проблема в следующем: если на одном компьютере я при чтении я получаю одни числа, то на другом - другие (причем все они различаются на 7 в десятичной системе). Пины при этом замыкаются идентично. С чем это может быть связано?
Вот на всякий случай текст программы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
using namespace std;
 void _stdcall Out32(short PortAddress, short data);

     typedef short _stdcall (*inpfuncPtr)(short portaddr);
     typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);

int main(void)
{
     HINSTANCE hLib;
     inpfuncPtr inp32;
     oupfuncPtr oup32;

     short x;
     int i;

     /* Load the library */
     hLib = LoadLibrary("inpout32.dll");

     if (hLib == NULL) {
          printf("LoadLibrary Failed.\n");
          return - 1 ;
     }

     /* get the address of the function */

     inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");

     if (inp32 == NULL) {
          printf("GetProcAddress for Inp32 Failed.\n");
          return - 1 ;
     }


     oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");

     if (oup32 == NULL) {
          printf("GetProcAddress for Oup32 Failed.\n");
          return - 1 ;
     }

     short var;
      (oup32)(0X37A,  4 );
 	while( 1 )
 	{
                (oup32)(0X37A,  4 );
                var=(inp32)(0x379);
                printf ("%d\n", var);
                if (var== 127 - 7 )           //all off
                {
                        (oup32)(0X37A,  4 );
                }
                if (var== 63 - 7 )           // 1  on
                {
                        (oup32)(0X37A,  4 );
                        Sleep( 1000 );
                        (oup32)(0x37A,  8 );
                        Sleep( 1000 );
                        (oup32)(0x37A,  4 );
                        Sleep( 1000 );
                }
                if (var== 255 - 7 )           // 2  on
                {
                        (oup32)(0X37A,  0 );
                        Sleep( 1000 );
                        (oup32)(0x37A,  15 );
                        Sleep( 1000 );
                }
                if (var== 95 - 7 )           // 3  on
                {
                        (oup32)(0X37A,  4 );
                        Sleep( 300 );
                        (oup32)(0x37A,  8 );
                        Sleep( 300 );
                        (oup32)(0x37A,  4 );
                        Sleep( 300 );
                }
                if (var== 111 - 7 )           // 4  on
                {
                        (oup32)(0X37A,  4 );
                        Sleep( 300 );
                        (oup32)(0x37A,  8 );
                        Sleep( 300 );
                        (oup32)(0x37A,  4 );
                        Sleep( 300 );
                        (oup32)(0X37A,  0 );
                        Sleep( 300 );
                        (oup32)(0x37A,  15 );
                        Sleep( 300 );

                }
                if (var== 119 - 7 )           // 5  on
                {
                        (oup32)(0X37A,  0 );
                        Sleep( 300 );
                        (oup32)(0x37A,  8 );
                        Sleep( 300 );
                        (oup32)(0X37A,  0 );
                        Sleep( 300 );
                        (oup32)(0x37A,  8 );
                        Sleep( 300 );
                        (oup32)(0X37A,  4 );
                        Sleep( 300 );
                        (oup32)(0x37A,  15 );
                        Sleep( 300 );
                        (oup32)(0X37A,  4 );
                        Sleep( 300 );
                        (oup32)(0x37A,  15 );
                        Sleep( 300 );
                }
                if (var== 191 - 7 )
                {
                        break;
                }
 	}
     FreeLibrary(hLib);;
     return  0 ;
}
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Чтение из порта LPT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]