У меня такая проблема. Иметься у нас плата АЦП фирмы 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 месяца. Помогите бедному студенту
Заранее спасибо!
17.04.06 09:03: Перенесено модератором из 'MFC' — Хитрик Денис
Re: Работа с внешней платой. (IRQ, ввод вывод данных с опред
Здравствуйте, TIMA101, Вы писали:
TIM>У меня такая проблема. Иметься у нас плата АЦП фирмы 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. Мне бы кто-нибудь прокомментировал бы его на примере. TIM>Честно говоря с понятием базового адреса я впервые столкнулся на этой плате, если у кого есть опыт работы с такой или аналогичной платы пишите и/или дайте ссылок. Это мой диплом, а осталось 1,5 месяца. Помогите бедному студенту
TIM>Заранее спасибо!
Я не очень понял... Вы из под Windows собираетесь с ней работать? ИМХО, если надо просто с ней пообщаться, то ДОС был бы гораздо более простым решением.
Re[2]: Работа с внешней платой. (IRQ, ввод вывод данных с оп
Работать мне надо все таки через Windows, нужен красивый графический интерфейс, дос — это крайний случай, если уж упрусь сильно. Данные нужно еще обрабатывать и выводить там графическое изображение. Это в лучщем случае так надо. Если знаете как под ДОС писать напишите, мне только надо что бы было на VC!
Re[3]: Работа с внешней платой. (IRQ, ввод вывод данных с оп
Здравствуйте, TIMA101, Вы писали:
TIM>Работать мне надо все таки через Windows, нужен красивый графический интерфейс, дос — это крайний случай, если уж упрусь сильно. Данные нужно еще обрабатывать и выводить там графическое изображение. Это в лучщем случае так надо. Если знаете как под ДОС писать напишите, мне только надо что бы было на VC!
Что значит под ДОС, но чтобы в VC? Имеется ввиду в Visual Studio? Нравится VS, пишите в ней. Только компилятор + некоторые либы придется взять, например, из Borland C. Родной компилятор от MS не умеет создавать 16-ти битные приложения (если я ошибаюсь и кто-то поправит, буду очень признателен).
Я бы просто рекомендовал осознавать разницу:
ДОС — ОС, работающая в реальном режиме процессора, т.е. любое приложение может делать все, что угодно. В том числе общаться с аппаратурой через порты ввода-вывода и обрабатывать прерывания.
Windows — ОС, работающая в защищенном режиме процессора, т.е. кто попало до устройства не дотянется, а может это сделать только драйвер => появляется много лишней работы по освоению еаписания драйверов под Windows + решение задачи организации графического интерфейса, который взаимодействует с драйвером.
Вывод: если Windows только ради VS и красивого интерфейса, то я бы сильно подумал стоит ли это того.
P.S. Текстовый интерфейс средствами Turbo Vision тоже неплохой получается...
Re: Работа с внешней платой. (IRQ, ввод вывод данных с опред
Здравствуйте, TIMA101, Вы писали:
TIM>У меня такая проблема. Иметься у нас плата АЦП фирмы 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. Мне бы кто-нибудь прокомментировал бы его на примере. TIM>Честно говоря с понятием базового адреса я впервые столкнулся на этой плате, если у кого есть опыт работы с такой или аналогичной платы пишите и/или дайте ссылок. Это мой диплом, а осталось 1,5 месяца. Помогите бедному студенту
Самое простое в вашем случае использовать драйвер с возможностью записи/чтения портов, к нему же и обращаться из GUI программы. Ищите драйвер типа io.sys (есть такой в свободном доступе), либо пишите свой (довольно просто).
Но как именно работать с ISA платой из под него (в какие порты и что писать) точно сказать не могу, может быть также как в DOS, но скорее всего не совсем.
По хорошему же нужно писать драйвер ISA платы, но это будет для вас зачительно более затратно по времени.
Все выше написанное касается NT, если же Win98 будет достаточно, то можно обойтись и DOS вариантом.
Re[2]: Работа с внешней платой. (IRQ, ввод вывод данных с оп
От:
Аноним
Дата:
19.04.06 11:27
Оценка:
Здравствуйте, Serg_Sm, Вы писали:
S_S>Ищите драйвер типа io.sys (есть такой в свободном доступе)
Мне нужно только записывать некие значения в определенные адресса платы (BASE_5710 +2)... Прерывания я уже передумал использовать . Считывать значения я собираюсь через бит готовности. Когда он равен 1 считываю значения, жду когда он будет равен нулю и.т.п. Мне нужно лишь напрямую работать с паматью!!! Согласен даже на ДОС . Может нужно использовать ассемблеровские вставки? Я там уж погрузился в чтение про нулевое кольцо...
Короче пишите и спасибо за оказанное внимание!!!
Re[3]: Работа с внешней платой. (IRQ, ввод вывод данных с оп
TIM>Работать мне надо все таки через Windows, нужен красивый графический интерфейс, дос — это крайний случай, если уж упрусь сильно. Данные нужно еще обрабатывать и выводить там графическое изображение. Это в лучщем случае так надо. Если знаете как под ДОС писать напишите, мне только надо что бы было на VC!
В качестве альтернативного варианта можно прикрутить ГУЙ к ДОСу. Вроде как wxWidgets это умеет.
PS. А к плате нет драйвера?
Re: Работа с внешней платой. (IRQ, ввод вывод данных с опред
Я так понимаю через асм вставки можно напрямую работать с памятью анологично inportbl и outportbl, если да то мне бы по подробнее как через асм всавку значение переменной записать в определенную ячейцу и считать значение в переменную из определенной ячейки. Еще глупый вопрос: Память платы получаеться как бы видима компьютером и она адрессуеться через базовый адресс, как бы становиться частью памяти компа туплю...