Jump to content

    

ValeraVi

Свой
  • Content Count

    44
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ValeraVi

  • Rank
    Участник

Контакты

  • Сайт
    http://www.vi-soft.com.ua
  • ICQ
    999197

Информация

  • Город
    Kyiv, Ukraine
  1. да, драйвер на чистом DDK, за основу взят пример bulkusb (просто добавил свой код туда). Правда компилируется не make файлом от DDK а в vs2005 как проект (как описано тут)
  2. Спасибо за советы, буду что-то пробовать. У меня сейчс фреймы с нулевой длиной не отправляются. Отправляются фреймы с меньшей чем wMaxPacketSize длиной чего по идее достаточно чтобы стек определил что данных больше не будет. У меня просто пустой фрейм получается перед каждым фреймом с булк пакетом.
  3. Может кто встречался с проблемой: Есть USB full speed девайс с двумя bulk ендпоинтами (один на вход, другой на выход). Написана фирмвара, драйвера под линух и винду, все работает. Для проверки работоспособности имеется простейшая апликуха, которая пишет 30 байт (это меньше wMaxPacketSize = 32) в девайс и сразу же вичитывает оттуда. Все это в цикле до бесконечности. Но по хардварному анализатору видно, что виндовский драйвер перед каждой транзакцией делает задержки в 1 мс, т.е. булк пакет посылается (принимается) только в каждом 2-м микрофрейме, т.е. перед каждой транзакцией я в логе анализатора вижу 2 SOF. При этом линуховый драйвер работает четко - задержек нет, перед каждой транзакцией по одному SOF, а в некоторых случаях умудряется даже в одном фрейме влепить по 2 транзакции (IN, потом OUT). Девайс и к линуху и к винде подключается один и тот же. Компы с виндой и линухом - разные, но другой периферии кроме этого девайса не подключено. Испытывали на нескольких виндовых компах - все одно и тоже - видна шлет булк пакет только в каждом 2-м фрейме (не первом, не 3-м, не 4-м...). Это какая-то особенность винды? Глюк моего драйвера виндовского? Писал его на базе примера из ДДК bulkusb. Может нужны какие-то хитрые настройки Дескрипторов usb девайса, которые для линуха подходят а для винды приводят к задержкам?
  4. 1. ~ЕА подтянут к VCC? (а лучше найдите любую схему на 51-м контроллере и сделайте также - в инете схем таких полно ) 2,3,4 - насколько я помню, at89s53 не позиционируется как имеющий фичу подключения светодиодов на прямую. Так что лучше поставить доп. транзисторы. Хотя по даташиту там при лог. 0 максимумы: на 1 пин - 10 мА, на весь 0-й порт 26 мА, на всю микруху 71 мА... но - это максимумы... даташит...
  5. Сенсор

    Цитата... подсчитывается количество импульсов осцилятора до срабатывания сторожевого пса ... ... это всеравно что микроскопом гвозди забивать По-моему проще таймер заюзать, он как раз и предназначен для подсчета импульсов (сорри, если оффтоп )
  6. 2 студерт Цитата...Думаю что основное состояние модулей это прослушивать эфир... Вот пусть модули его и слушают на предмет прихода от хоста общей команды типа "всем N секундная готовность к началу записи" (на эту команду модули ничего не должны отвечать). Для надежности, после этой команды можно каждый модуль по отдельности по-спрашивать (пока модули паралленьно отсчитывают заданное кол-во секунд) как он принял общую команду (главное успеть за эти N сек), и если кто-то не "понял" - отменить все и послать общую команду заново. Правда нужно как минимум 2 условия - каждый модуль умеет точно (1 мкс у вас) отсчитывать время и нужно чтобы хост не только знал когда будет следующий "выстрел" но и управлял им (чтоб, если не все модули приняли общую команду то можно было все отменить). Ну и еще маленькое условие - чтобы общая команда пришла на все модули одновременно, с погрешностью не больше 1 мкс...
  7. Биты и IAR живут ли вместе

    2 arttab правильно так: while( UCSR1A & 0x06 ); и кто вам сказал что это для компилятора не очевидно??? Если вашему комилятору это не очевидно - выбросьте его ... моему (iar4.11a) очевино и все работает: 1075: while( UCSR1A & 0x06 ); +00000725: 9100009B LDS R16,0x009B Load direct from data space +00000727: 7006 ANDI R16,0x06 Logical AND with immediate +00000728: F7E1 BRNE PC-0x03 Branch if not equal може у вас что-то не работает (виснет) по другой причине ? например промому что вы ждете изменения одного из битов (U2X1) который никогда не изменится - он может измениться только вашей программой.
  8. 2 BzZz А почему бы для передачи данных по радио не использовать какой нибуть метод по проще и по дешевле. Например при момощи какого нить простого радиомодуля. Я использовал модули от RFM типа ТR3000 - это только трансивер сигналов, поэтому к нему пришлось еше городить управление и реализовывать простой низкоуровневый протокол передачи данных, для отслеживания ошибок в передаче / приеме. Чтобы этим не заниматься можно попробывать другие продукты, например типа CC1010. Я лично их не юзал, но по описанию там есть и микроконтроллер (можете заюзать для считывания данных с датчика) и передача данных там реализована (просто указываете что передавать и оно передает/принимает с отслеживанием ошибок и т.п.). Хотя, в принципе для вас можно, думаю и еще дешевле/проще вариант реализации подобрать, т.к. расстояния - не большие...
  9. на сайте производителя, где же еще http://atmel.com/dyn/products/product_card...er&part_id=2598
  10. USB микросхемы

    ... дрова можно скачать с FTP silabs _http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?t=1223
  11. дрова на нее думаю и так, без кита, найти в инете можно например там: _http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?t=1223
  12. Описние GSM/GPRS модулей

    1 - http://forum.electronix.ru/index.php?showtopic=7716 2 - я делал простую систему типа: "на кнопках набрали код, он передался смс-кой на спец. номера; спец номера и некоторые другие настроки настраиваются с клавиатуры". Заняло недельки 2 (с нуля знаний об этих модулях). Там все довольно хорошо продукоментировано, есть примеры (см. п.1 ) так что думаю что больше времени потратите именно на реализацию своего устройства чем на разбирательство в SDK.
  13. Цитата...Проблема в том, что сейчас это именно оповещения, и письма присылаются с припиской: QUOTE "Возможно в теме больше одного ответа, но только 1 письмо будет отправлено Вам после каждого посещения темы, на которую Вы подписаны.... а если в "Настройки e-mail" установить "... тип уведомления" = "Немедленное уведомление" оно тоже посылает только одно сообщение из темы? Поидее должно немедленно высылать все сообщения что постятся в форум...
  14. 2 lummox В основном (не знаю стандарт это или просто так сложилось) направлением рулят при помощи RTS. Вот у меня валяется PCI плата RS485/RS422 портов (Moxa вроде) и на ней, для RS485 есть переключатель управления направлением: AUTO или RTS. Например есть такая библиотечка для С++ билдера: Async Professional (APRO) - она умеет работать в режиме RS485 - рулит направлением при помощи RTS.
  15. Помогите ламеру с IAR

    1. void запросто можно использовать с указателями на массивы (и др.). А если точнее, то void* это указатель на "ничто" поэтому тут уже нет разницы какой указатель (на строку, на функцию, на массив int и т.п.) вы приводите к типу void* 2. 2 jack_avenger Чтоб ваш код откомпилился нужно написать так: char cChar; char xChar[10]; void *pVoid; pVoid=&cChar; *((char*)pVoid) = 1; т.е., т.к void - это "ничто", то в этом "ничто" трудно выделить элемент, в который вы хотите затолкнуть 1, поэтому указатель на "ничто" нужно к чему-то привести (например к char), а потом уже в него записывать 1. НО, как сказал phantom - между указателем на массив char (строкой) и просто char (частный случай массива char размером = 1 элемент) разницы нет (и в том и в другом случае указатель - указывает на char) поэтому проще написать так: char cChar; char xChar[10]; char *pVoid; pVoid=&cChar; pVoid=xChar; //т.к массив char'ов это есть указатель на 0-й char. *pVoid = 1;