Форум: Техническая поддержка

Тема: проблемы с запуском 2х плат L-1221 под WIN2000 Pro

Вы не вошли.

 Поиск | Регистрация | Вход 

Альберт
10.11.2001 18:51:51
#1

Гость

проблемы с запуском 2х плат L-1221 под WIN2000 Pro

Привет!

Имею проблемы с запуском 2х плат L-1221 под WIN2000 Pro.

По порядку.
Имеются в наличии 2 платы L-1221. Их установки перемычками:
1 - IRQ=11, Address=0x300
2 - IRQ=10, Address=0x304

Написал приложение в C++Builder 5, в котором получаю данные с плат L-1221
(Максимум с 4 плат), вывожу их в окошки в виде сигналов, спектров, трендов СКЗ и пр.
Под WIN98, потом под WIN ME никаких проблем не было: данные с 2х моих плат
поступают и рисуются как надо.

Перешел на WIN2000 Pro.
Установил LCard Setup для своих плат:
- устройство LDev0: тип L-1221, Irq=11, Base I/O address(HEX)=300, Length(HEX)=10
- устройство LDev1: тип L-1221, Irq=10, Base I/O address(HEX)=304, Length(HEX)=10

Поставил Builder, откомпилил, слинковал свои исходники. Все хорошо.
Запустил задачу для одной платы (LDev0). Все работает и рисуется. 

Запустил задачу для 2х плат. Аварийный выход. В Debugger вижу затык в цикле
открытия файлов LDEV0, LDEV1 при помощи функции CreateFile.
Ошибка при открытии файла LDev1 (файл LDev0 открылся нормально), CreateFile
вернул мне INVALID_HANDLE_VALUE ( код 0хFFFFFFFF ).

Полез в Панель управления WIN2000 -> Система -> Оборудование -> Диспетчер устройств ->
вкладка Вид -> Ресурсы по типу. В окошке раскрываю "Запрос на прерывание (IRQ)".
В нем вижу 11 прерывание занято устройством LDevisa. Про 10 прерывание ничего, его никто
не занял. В разделе "Ввод/Вывод" LDevisa занимает адреса 0х300 - 0х30F.

В реестре в HKEY_LOCAL_MACHINE->SYRTEM->CurrentControlSet->Services->LDevisa->Devices->LDev
расположены разделы 0, 1, 2, 3.
В разделе 0: Base=0x300 (768), BaseL=0x10 (16), DSPType=0x888 (2184), Irq=0xb (11), Type=0x4 (4).
Остальные ноль.

В разделе 1: Base=0x304 (772), BaseL=0x10 (16), DSPType=0x888 (2184), Irq=0xа (10), Type=0x4 (4).
Остальные ноль.

Подскажите, в чем моя проблема?
Thanks.

Альберт Ахметянов

12.11.2001 09:36:58
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: проблемы с запуском 2х плат L-1221 под WIN2000 Pro

А если оставить одну плату с 10 прерыванием то работает ?

Альберт
20.11.2001 22:50:57
#3

Гость

Re: проблемы с запуском 2х плат L-1221 под WIN2000 Pro

Привет!

Попробовал Ваш совет. Вылезла проблема о которой и не думал. Пока вопрос о Win2000 и двух платах в сторону.
Мое заявление ранее:

    Под WIN98, потом под WIN ME никаких проблем не было: данные с 2х моих плат поступают и рисуются как надо.

Вышла небольшая путаница. Использовал выход одного генератора на входы обеих плат, видел сигналы, думал, что все ОК.
Сейчас решил сделать иначе.

Исх. данные:
ОС  Win ME
На первую плату (0х300, 11) сигнал С1
На вторую плату (0х304, 10) сигнал С2

LCard-Setup: LDEV0=>(0x300, 11)       LDEV1=>(0x304, 10)
Задачка показывает правильные сигналы: LDEV0 - С1,  LDEV1 - С2

Изменил LCard-Setup: LDEV0=>(0x300, 11)        LDEV1=>None
По замыслу на картинке должен видеть LDEV0 - С1 и вижу С1

Изменил LCard-Setup: LDEV0=>(0x304, 10)       LDEV1=>None
По замыслу на картинке должен видеть LDEV0 - С2, но вижу С1 т.е. сигнал с платы, которая вроде как выключена из реестра

Для полноты эксперимента еще раз изменил
LCard-Setup: LDEV0=>(0x304, 10) LDEV1=>(0x300, 11)
и получил полный бред
Для платы LDEV0 должен быть сигнал - С2, но вижу С1
Для платы LDEV1 должен быть сигнал - С1, но вижу С2

сижу разбираюсь.
заинтересовался структурой DEV_REG_UNI:

у меня получается, что содержание этой структуры для двух плат практически одинаковое, кроме hVxd
Нет ли здесь ошибки?

DTA_REG - смещение регистра для одиночного чтения.
Для адреса платы 0х300 равняется 0
Для адреса платы 0х304 должно равняться ..?

IDMA_REG - смещение регистра для выдачи адреса IDMA.
Для адреса платы 0х300 равняется 2
Для адреса платы 0х304 должно равняться ...?

CMD_REG - смещение регистра для выдачи команд.
Для адреса платы 0х300 равняется 2
Для адреса платы 0х304 должно равняться ...?

IRQ_RST - смещение регистра для сброса прерываний
Для адреса платы 0х300 равняется 0
Для адреса платы 0х304 должно равняться ...?

DTA_ARRAY - смещение регистра для чтения массива данных
Для адреса платы 0х300 равняется 0
Для адреса платы 0х304 должно равняться ...?

RDY_REG - смещение регистра готовности
Для адреса платы 0х300 равняется 0
Для адреса платы 0х304 должно равняться ...?

CFG_REG - смещение регистра конфигурации
Для адреса платы 0х300 равняется 0
Для адреса платы 0х304 должно равняться ...?

Разъясните пожалуйста эти теги структуры DEV_REG_UNI

Thanks

21.11.2001 09:42:54
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: проблемы с запуском 2х плат L-1221 под WIN2000 Pro

Есть мысль что адреса надо разносить как 300 и 310. Вс труктуре все правильно иам только смещения относительно базового адреса, а для всех плат они одинаковы.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск