1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Работа с Паскалем и выходами на мат. плате(com, Usb...)
Посколько в Паскале новичок хотел помимо написания обычных программ научиться програмировать устроиства подключенные к портам вывода. В разделе "статьи" прочитал о програмировании мыши, и поэтому еще больше заинтересовался эти вопросом.
Так вот раз подфорум теоритический, то при помощи каких функций можно осуществить обращение к портам.
necks, желательно точно определиться, какой интерфейс (COM, LPT или USB) и в какой среде (DOS или Win32) ты собираешься программировать, т. к. методы программирования значительно отличаются.
Скорее всего буду програмировать в Win32. А вот то какой интерфейс пока не знаю, серьезно интерес к этому появился недавно, поэтому раз форум по Паскалю, значит и люди которые здесь сидят разбираются в этом, а я только новичок можно сказать. Так вот, мне бы больше теории узнать на первое время...
В Win32 проще всего работать с COM: - не нужно писать драйвер - используются функции файлового ввода-вывода и несколько специальных функций, т. е. работа только с Win32 API; - легко реализуется в подключаемом устройстве (если последнее необходимо изготовить самому).
Чтение данных (Buf - переменная - буфер, в который принимаются данные; Count - кол-во байт, которое необходимо принять; r получает кол-во принятых байт, r < Count в случае ошибки):
WriteFile(Port, Buf, Count, r, nil);
Запись данных (Buf - переменная - буфер с данными; Count - кол-во байт в буфере; r получает кол-во переданных байт, r < Count в случае ошибки):
WriteFile(Port, Buf, Count, r, nil);
P. S. Естественно, во всех случаях необходимо выполнять проверку на наличие ошибок ;) (все перечисленные функции, за исключением CreateFile, возвращают значения типа Boolean; CreateFile в случае ошибки возвращает значение INVALID_HANDLE_VALUE).
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..