![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| TIMA101 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
У меня такая проблема. Иметься у нас плата АЦП фирмы Octagon модель 5710. Она вставляется в порт ISA. Путем установки перемычек можно установить базовый адрес платы (100H, 110H, …170H). Управление платой происходит путем записывания определенных битов (байтов) в адреса платы. Например, запуск преобразования платы происходит путем записи числа 255H на адрес BASE + 0, где я понял BASE – это базовый адрес. Считывание информации также происходит с определенных адресов. В Turbo – C используют операторы outportb и inportb(например outportb(0×21, а), inportb(BASE_5710 +2). Подскажите какие аналогичные операторы можно использовать в VC!!! Это первый вопрос. Еще при считывании информации мне нужно использовать прерывания IRQ, я так понял для этого нужно использовать класс CIM_IRQ. Мне бы кто-нибудь прокомментировал бы его на примере.
Честно говоря с понятием базового адреса я впервые столкнулся на этой плате, если у кого есть опыт работы с такой или аналогичной платы пишите и/или дайте ссылок. Это мой диплом, а осталось 1,5 месяца. Помогите бедному студенту Заранее спасибо! |
|||
|
||||
| adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: 2 Всего: 5 |
Это не отличие Turbo C от VC, это отличие DOS от Windows (Реального режима работы процессора от защищённого). В Windows Вы не можете писать в порты устройства из 3-го кольца привилегий (кольца прикладных программ). Для взаимодействия с устройствами используются драйверы, работающие в 0-м кольце привилегий (Режим ядра). Если нет готового драйвера к устройству, его нужно написать. Драйвер должен зарегистрировать символьную ссылку, после чего к нему можно будет обратиться из приложения с помощью CreateFile(), и затем, писать и читать данные из устройства, как из обычного файла. Драйвер также может регистрировать в системе свой обработчик прерывания, который будет вызываться каждый раз при возникновении данного прерывания. Всё это документировано в DDK, есть понятные примеры. Да и в интернете по написанию драйверов полно инфы. Все остальные методы работы с устройством из-под Windows - суть извращения и потребуют гораздо больше времени и сил. --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |