ValeraVi
Свой-
Постов
44 -
Зарегистрирован
-
Посещение
Весь контент ValeraVi
-
да, драйвер на чистом DDK, за основу взят пример bulkusb (просто добавил свой код туда). Правда компилируется не make файлом от DDK а в vs2005 как проект (как описано тут)
-
Спасибо за советы, буду что-то пробовать. У меня сейчс фреймы с нулевой длиной не отправляются. Отправляются фреймы с меньшей чем wMaxPacketSize длиной чего по идее достаточно чтобы стек определил что данных больше не будет. У меня просто пустой фрейм получается перед каждым фреймом с булк пакетом.
-
Может кто встречался с проблемой: Есть USB full speed девайс с двумя bulk ендпоинтами (один на вход, другой на выход). Написана фирмвара, драйвера под линух и винду, все работает. Для проверки работоспособности имеется простейшая апликуха, которая пишет 30 байт (это меньше wMaxPacketSize = 32) в девайс и сразу же вичитывает оттуда. Все это в цикле до бесконечности. Но по хардварному анализатору видно, что виндовский драйвер перед каждой транзакцией делает задержки в 1 мс, т.е. булк пакет посылается (принимается) только в каждом 2-м микрофрейме, т.е. перед каждой транзакцией я в логе анализатора вижу 2 SOF. При этом линуховый драйвер работает четко - задержек нет, перед каждой транзакцией по одному SOF, а в некоторых случаях умудряется даже в одном фрейме влепить по 2 транзакции (IN, потом OUT). Девайс и к линуху и к винде подключается один и тот же. Компы с виндой и линухом - разные, но другой периферии кроме этого девайса не подключено. Испытывали на нескольких виндовых компах - все одно и тоже - видна шлет булк пакет только в каждом 2-м фрейме (не первом, не 3-м, не 4-м...). Это какая-то особенность винды? Глюк моего драйвера виндовского? Писал его на базе примера из ДДК bulkusb. Может нужны какие-то хитрые настройки Дескрипторов usb девайса, которые для линуха подходят а для винды приводят к задержкам?
-
вопрос новичка о AT89S53
ValeraVi ответил kurtis тема в Все остальные микроконтроллеры
1. ~ЕА подтянут к VCC? (а лучше найдите любую схему на 51-м контроллере и сделайте также - в инете схем таких полно :)) 2,3,4 - насколько я помню, at89s53 не позиционируется как имеющий фичу подключения светодиодов на прямую. Так что лучше поставить доп. транзисторы. Хотя по даташиту там при лог. 0 максимумы: на 1 пин - 10 мА, на весь 0-й порт 26 мА, на всю микруху 71 мА... но - это максимумы... даташит... ;) -
Помогите с созданием радисети
ValeraVi ответил студерт тема в RF & Microwave Design
2 студерт Вот пусть модули его и слушают на предмет прихода от хоста общей команды типа "всем N секундная готовность к началу записи" (на эту команду модули ничего не должны отвечать). Для надежности, после этой команды можно каждый модуль по отдельности по-спрашивать (пока модули паралленьно отсчитывают заданное кол-во секунд) как он принял общую команду (главное успеть за эти N сек), и если кто-то не "понял" - отменить все и послать общую команду заново. Правда нужно как минимум 2 условия - каждый модуль умеет точно (1 мкс у вас) отсчитывать время и нужно чтобы хост не только знал когда будет следующий "выстрел" но и управлял им (чтоб, если не все модули приняли общую команду то можно было все отменить). Ну и еще маленькое условие :) - чтобы общая команда пришла на все модули одновременно, с погрешностью не больше 1 мкс... -
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) который никогда не изменится - он может измениться только вашей программой.
-
Помогите плз с идеями
ValeraVi ответил BzZz тема в RF & Microwave Design
2 BzZz А почему бы для передачи данных по радио не использовать какой нибуть метод по проще и по дешевле. Например при момощи какого нить простого радиомодуля. Я использовал модули от RFM типа ТR3000 - это только трансивер сигналов, поэтому к нему пришлось еше городить управление и реализовывать простой низкоуровневый протокол передачи данных, для отслеживания ошибок в передаче / приеме. Чтобы этим не заниматься можно попробывать другие продукты, например типа CC1010. Я лично их не юзал, но по описанию там есть и микроконтроллер (можете заюзать для считывания данных с датчика) и передача данных там реализована (просто указываете что передавать и оно передает/принимает с отслеживанием ошибок и т.п.). Хотя, в принципе для вас можно, думаю и еще дешевле/проще вариант реализации подобрать, т.к. расстояния - не большие... -
AT89C51SND1 MP3 декодер
ValeraVi ответил Chupahabra тема в Все остальные микроконтроллеры
на сайте производителя, где же еще ;) http://atmel.com/dyn/products/product_card...er&part_id=2598 -
USB микросхемы
ValeraVi ответил Serg_elect тема в RS232/LPT/USB/PCMCIA/FireWire
... дрова можно скачать с FTP silabs :) _http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?t=1223 -
дрова на нее думаю и так, без кита, найти в инете можно ;) например там: _http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?t=1223
-
Описние GSM/GPRS модулей
ValeraVi ответил Vitёk тема в RF & Microwave Design
1 - http://forum.electronix.ru/index.php?showtopic=7716 ;) 2 - я делал простую систему типа: "на кнопках набрали код, он передался смс-кой на спец. номера; спец номера и некоторые другие настроки настраиваются с клавиатуры". Заняло недельки 2 (с нуля знаний об этих модулях). Там все довольно хорошо продукоментировано, есть примеры (см. п.1 ;) ) так что думаю что больше времени потратите именно на реализацию своего устройства чем на разбирательство в SDK. -
а если в "Настройки e-mail" установить "... тип уведомления" = "Немедленное уведомление" оно тоже посылает только одно сообщение из темы? Поидее должно немедленно высылать все сообщения что постятся в форум...
-
2 lummox В основном (не знаю стандарт это или просто так сложилось) направлением рулят при помощи RTS. Вот у меня валяется PCI плата RS485/RS422 портов (Moxa вроде) и на ней, для RS485 есть переключатель управления направлением: AUTO или RTS. Например есть такая библиотечка для С++ билдера: Async Professional (APRO) - она умеет работать в режиме RS485 - рулит направлением при помощи RTS.
-
Помогите ламеру с IAR
ValeraVi ответил jack_avenger тема в AVR
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; -
2 arttab че-то не совсем ясно :), выше вы говорили что глобальные прерывания вы разрешили, а в примере они у вас запрещаются при инициализации: void main(void) { __disable_interrupt(); //CLI и больше нигде не разрешаются кроме как в прерывании по получению байта из ком порта, которое никогда не произойдет :) Поставте перед UDR1='k'; разрешение прерываний: __enable_interrupt(); и все должно заработать.
-
Помогите ламеру с IAR
ValeraVi ответил jack_avenger тема в AVR
я б написал примерно так: struct Value_tag; typedef struct Value_tag Value; typedef struct Tree_element_tag Tree_element; struct Tree_element_tag { Value * val; Tree_element *left, *right; }; struct Value_tag { int a; int b; //... }; и дальше не пришлось бы к Value и Tree_element постоянно приписывать struct :rolleyes: -
2 Firer Чтоб получить BIN в IAR 4.11a нужно установить в Опциях проекта -> Linker -> Format -> Other -> Output Format = raw-binary
-
intel-standard позволяет вмещать в себя до 64КБ данных, а в меге128 - 128КБ, поэтому, если кода будет больше 64КБ придется выбирать intel-extended - он хоть и по сложнее intel-standard но, по идее, все програмы управления программаторами должны их понимать (если ваша понимает - лучше сразу ставте intel-extended)
-
ну, 100% работоспособности либов могут гарантировать только их аторы :), так что спросите у них. Но я думаю что они все рабочие, иначе нет смысла их выкладывать в и-нет... :) К тому же они маленькие в размерах - скачайте нужную, проверте на ваших программах, будут проблемы - пишите сюда - бум разбираться :)...
-
2 skopus при UBRR = 0 и U2X = 1 на вашем кварце мега128 может работать и на 904000 bps (RTFM) ... Проблемы могут возникнуть только если вы это дело будете связывать по ком порту с ПК ... хотя ... и они решаемые...
-
Да - я тоже нашел только ссылку на поиск в гугле. Ясно - там наверно для очень хорошего софта всем доступ не дают.
-
а с него можно все качать? Или кое что нельзя? Зарегился, нашел прогу (Xilinx ise 7.1) а оно мне что-то про то что у меня каких-то монет не хватает для скачки :(... Или там софт (варез?) только за деньги? :cranky:
-
IAR выпустил обновления библиотек
ValeraVi ответил IgorKossak тема в AVR
Спасибо... Про фулл версии я был не в курсе :)... по своему незнанию токо 44 метра трафа потратил :)... -
2 &-rey это вы какие еепромы имеете ввиду? :) AT24Cxxx (покрайней мере AT24C04, с которой я работал) без проблем можно писать по-байтово.