ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: GPIO  (Прочитано 6894 раз)

0 Пользователей и 1 Гость просматривают эту тему.

bva_rzn

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 21
GPIO
« : 13 Декабрь, 2011, 15:21:26 »

Добрый день.

Имеем Тион-Про270, Windows CE 6.0
Разрабатываемое устройство должно через заданные интервалы времени считывать информацию с несколькох датчиков и её обрабатывать. В связи с этим возникло несколько вопросов:
1) какое время реакции системы на прерывание по линии gpio (пользуемся образом с сайта)?
2) есть ли в системе таймеры, которые можно использовать для задания временных интервалов?
3) подаю на GPIO9 последовательность так-х импульсов с периодом 10 мс. Запустил демонстрационный пример GPIO_Test.
В отладчике вижу, что DeviceIoControl с GPIO_GET_STATE работает, состояние линии меняется, но при использовании DeviceIoControl  с GPIO_GET_EDGE_DETECT_STATUS в буфере OutBuf постоянно нули. В чём может быть проблема?
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: GPIO
« Ответ #1 : 14 Декабрь, 2011, 15:30:35 »

Добрый день.

Добрый день.

Имеем Тион-Про270, Windows CE 6.0
Разрабатываемое устройство должно через заданные интервалы времени считывать информацию с несколькох датчиков и её обрабатывать. В связи с этим возникло несколько вопросов:
1) какое время реакции системы на прерывание по линии gpio (пользуемся образом с сайта)?

Для того, чтобы отслеживать прерывания GPIO, нужно писать драйвер, реализующий данную функцию. Время реакции будет зависеть от того, как написае драйвер.

Цитировать
2) есть ли в системе таймеры, которые можно использовать для задания временных интервалов?

Есть аппаратные таймеры. Для их применения также необходимо разработать драйвер.
Есть программные. Доступ к нам возможен через API WinCE.

Цитировать

3) подаю на GPIO9 последовательность так-х импульсов с периодом 10 мс. Запустил демонстрационный пример GPIO_Test.
В отладчике вижу, что DeviceIoControl с GPIO_GET_STATE работает, состояние линии меняется, но при использовании DeviceIoControl  с GPIO_GET_EDGE_DETECT_STATUS в буфере OutBuf постоянно нули. В чём может быть проблема?

При вызове DeviceIoControl с параметром GPIO_GET_EDGE_DETECT_STATUS возвращается либо TRUE, либо FALSE, в зависимости от текущих настроек порта.
Записан

Petr.Andr

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 21
Re: GPIO
« Ответ #2 : 16 Август, 2012, 22:44:42 »

Здравствуйте.
Пытался установить драйвер GPIO, скаченный с Вашего сайта. Используем Тион+Сириус Win CE5.0  В реестре создал запись:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIO]
"dll"="\NORFlash\gpio_ep9315.dll"
"Prefix"="GIO"
"Order"=dword:4
Файл драйвера записал на sd карту в созданную папку NORFlash. При попытке обратиться к драйверу из нашего приложения:
 IntPtr file = CreateFile("GIO1:", access, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
получаю исключение. На Вашем сайте в разделе wiki написано: "Драйвер должен быть записан во внутренний флеш-диск, путь к нему должен быть такой, как в указанных выше ключах реестра." Sd карта это и есть NORFlash или нет? Если нет, тогда расскажите пожалуйста алгоритм записи файла драйвера в NORFlash. Спасибо.
 
Записан

Petr.Andr

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 21
Re: GPIO
« Ответ #3 : 17 Август, 2012, 22:04:55 »

После добавления в реестр информации о драйвере, должна ли появляться запись о нем в HKEY_LOCAL_MACHINE\Drivers\Active ? Каковы могут быть причины того, что запись о драйвере не появляется?
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: GPIO
« Ответ #4 : 21 Август, 2012, 14:22:35 »

Добрый день.
Драйвер написан для WinCE 6.0. В 5.0 он, скорее всего, не заработает.
Записан

Petr.Andr

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 21
Re: GPIO
« Ответ #5 : 21 Август, 2012, 23:37:33 »

Драйвер написан для WinCE 6.0. В 5.0 он, скорее всего, не заработает.
Это связано с особенностями образа win ce 5.0?
Вроде при написании драйверов нигде не указывается версия win ce (отличия есть для NT или win 7), или я ошибаюсь?
Еще просьба уточнить sd карта это и есть NORFlash или нет?
« Последнее редактирование: 21 Август, 2012, 23:40:11 от Petr.Andr »
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: GPIO
« Ответ #6 : 22 Август, 2012, 13:12:01 »

У WinCE 5 и WinCE 6 сильно отличается архитектура. Функции, вызываемые из драйвера, не реализованы в ОС WinCE 5.0.
Для работы с GPIO Вам нужно работать напрямую (писать и читать) с регистрами процессора.
NorFlash - это не SD-карта, а внутренняя Flash.
Записан

Petr.Andr

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 21
Re: GPIO
« Ответ #7 : 22 Август, 2012, 15:18:35 »

У WinCE 5 и WinCE 6 сильно отличается архитектура. Функции, вызываемые из драйвера, не реализованы в ОС WinCE 5.0.
Для работы с GPIO Вам нужно работать напрямую (писать и читать) с регистрами процессора.
NorFlash - это не SD-карта, а внутренняя Flash.
Спасибо за ответ.
Если мы прошьем в тион образ win ce 6.0, как осуществить запись Вашего драйвера GPIO в NorFlash?
P.S. судя по описанию на Вашем сайте, win ce 6.0 прошить в тион (с платой сириус) не получиться?
« Последнее редактирование: 22 Август, 2012, 15:22:29 от Petr.Andr »
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: GPIO
« Ответ #8 : 22 Август, 2012, 15:25:27 »

В WinCE 6.0 драйвер GPIO уже включен.
Для Тиона WinCE 6 мы не порторовали.
Записан