|
Модераторы: PILOT, ManiaK, Mazzi |
|
pvabox |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 23.8.2009 Репутация: нет Всего: нет |
По многочисленным просьбам на e-mail, выкладываю пример моего проекта для микроконтроллера с описанием под WinAVR.
PS: Внимание! Архив обновлен и дополнен. Это сообщение отредактировал(а) pvabox - 23.9.2011, 10:08 Присоединённый файл ( Кол-во скачиваний: 506 ) LED_Device_Example.rar 83,43 Kb |
|||
|
||||
joint931 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 29.10.2009 Репутация: нет Всего: нет |
Ктонибудь может кинуть пример как с помощью компонента JvHidController ПРИНИМАТЬ данные? Как девайс найти и послать пакеты все ясно, а вот как его опросить... ниче не ясно...
Заранее спасибо. |
|||
|
||||
197102 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.12.2009 Репутация: нет Всего: нет |
Скажите, а где найти пресловутый JvComponentBase? JvHidControllerClass установил, а этого найти не могу. |
||||||
|
|||||||
mr_smit |
|
|||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 27.2.2008 Где: Самара Репутация: 1 Всего: 4 |
Кинь на форму сам "HID компонент" и он добавит нужные uses
|
|||
|
||||
pvabox |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 23.8.2009 Репутация: нет Всего: нет |
Замени в тексте программы на Delphi включения SetFeature на GetFeature, данные будут помещаться в буфер Buf. Добавлено через 3 минуты и 37 секунд Пробовал кто собирать подобный девайс, есть замечания по работе? Напишите свое мнение. |
|||
|
||||
Alexeyslav |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.12.2009 Репутация: нет Всего: нет |
Такая книга заставляет задуматься, искать ошибки исправлять их - в этом процессе и приходят знания. Научившись же копировать - знаний не будет, и никогда до конца не поймете как это все работает. От незнания возникают всевозможные глюки - устройство работает только в определенных условиях, чуть что (в примере упустили проверки на ошибки например) и все летит к чертям, приложение вываливается а драйвер вешает систему... а Вы долго-долго ищите причину. |
|||
|
||||
svetodiod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.12.2009 Репутация: нет Всего: нет |
Прошу прощения за дурацкий вопрос, откуда девайс знает, что он
где это задается (если задается) в прошивке микроконтроллера? |
|||
|
||||
alfrerd |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.4.2009 Репутация: нет Всего: нет |
Попробовал, лампочки конечно работают (если добавить "DDRB = 255;"). а вот с буфером проблема. не выводит. Делал изменения в
По логике вещей, каждая функция вызывается один раз и за этот период мы должны сохранить переданные данные в какой-то промежуточный буфер и провести их обработку. Но не идет. сделал просто индикацию показа светодиода, если код хоть раз выполнит процедуру. Где ошибся и у кого пошло? |
||||||
|
|||||||
alfrerd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.4.2009 Репутация: нет Всего: нет |
подчистил файл проекта от лишних модификаций, полученных в результате множества опытов, попил чайку, подумал и получил следующий результат:
1. Дополнительный буфер не особо то и нужен. это обусловлено тем, что используется только один тип репорта (занчит одной длинны все данные в нем) и контроллер его запишет в том же самом месте. При повторном вызове данных должен перезаписаться только заголовок. хотя может я и не прав. нужно просмотреть весь код обработки. 2. из Дельфи приложения функция usbFunctionWrite не вызывается. почему? есть одно предположение, но это позже. 3. если вызвать функцию, например через usbtool, то диод загорается (данные записаны!), но(!) при анализе, что вернула GetFeature() и что записывалось видно очень большое различие. 4. если usbFunctionRead возвращает значение отличное от 1, то устройство просто не работает. ЗЫ: по поводу 2 может быть такая вешь, что просто не включена обработка. в usbFunctionSetup записано "/* игнорируем запросы типа вендора, мы их все равно не используем */". То есть если наше приложение посылает запрос по вендору, а не по классу, то этот запрос банально игнорируется. Сделал проверку, не по вендору тоже. Но помимо вендора и класса есть еще standard и reserved. 1 проверить тоже не получилось. поскольку при внесении дополнительного кода в usbFunctionWrite и usbFunctionRead код просто не работает ни с одной из перечисленных программ. Есть у меня смутные сомнения, что вероятно объявленный статичный (и нестатичный) массив располагается во флэш памяти. в CodeVision для этих целей используется специальная директива в декларации. Вероятно и в WinAVR тоже, только не знаю какая. |
|||
|
||||
pvabox |
|
||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 23.8.2009 Репутация: нет Всего: нет |
Эта строка уже добавлна при инициализации микроконтроллера
Добавлено через 6 минут Написал недавно плагин под Winamp на Delphi для вышеприведенной схемы с дополнительным усилителем тока и мощными светодиодами, получилась замечательная цветомузыка. Ее можно использовать как usb игрушку. |
||||
|
|||||
mr_smit |
|
|||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 27.2.2008 Где: Самара Репутация: 1 Всего: 4 |
pvabox, давно мечтаю сделать что то подобное. Насмотрелся на ютубе на кубы из светодиодов.... класс...
Выложи хотя бы фото своего устройства...!!!!! Жутко интересно посмотреть!!! Очень заинтересовало. |
|||
|
||||
mr_smit |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 27.2.2008 Где: Самара Репутация: 1 Всего: 4 |
Да и ещё, объясните эту конструкцию, я чего то не понимаю:
Понятно что LEDs это байт, т.е. 8 бит. Причем тут 1,2,4,8,16,32,64,128. С "делфи битами" не приходилось работать. а если:
то что тогда????? Может лучше так:
Или глупость написал? Это сообщение отредактировал(а) mr_smit - 1.11.2010, 10:59 |
||||||
|
|||||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Состояние набора checkbox'ов переводится в битовую шкалу
Это степени двойки. В бинарном виде это будет 00000001 00000010 00000100 00001000 00010000 00100000 01000000 Если эти значения сложить, то в соответствующей позиции суммы появятся единички У Индусов подсмотрели? Работать будет, но где то раз в 100 медленнее |
|||
|
||||
tans |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 7.10.2010 Репутация: нет Всего: нет |
А кто-нибудь знает как реализовать передачу данных в c++ buildere. В билдере отсутствует тип TReportData, в какой тип нужно положить передаваемые данные?
|
|||
|
||||
mr_smit |
|
|||
Опытный Профиль Группа: Участник Сообщений: 254 Регистрация: 27.2.2008 Где: Самара Репутация: 1 Всего: 4 |
||||
|
||||
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |