реклама на сайте
подробности

 
 
> USB HID LPC1343
IgorAVR2
сообщение Feb 8 2011, 21:41
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



В LPC1343 есть встроенный драйвер USB HID устройства. Всё хорошо, всё работает, только есть вот одно но...

Процедура GetInReport, от которой идут данные в компьютер, вызывается с заданным интервалом по таймеру. То есть с определённым интервалом пакеты уходят в компьютер. Как сделать что бы репорты уходили не с определённым интервалом, а только тогда, когда мне это нужно, то есть тогда когда у меня есть данные на отправку? Так например работает мышка: двигаем - пошли пакеты, перестали двигать - пакеты не уходят. И как это организованно в других мк с USB при реализации HID?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
EXeGLuMATOR
сообщение Feb 21 2011, 22:57
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Ковырялся тоже с этим камушком.
Тут дело в другом - если хосту не ответить на запрос - то он перестанет опрашивать ваш девайс.
И еще - почему-то при использовании встроенного аппаратного HID у меня не получилось завести ядро на частоте выше 12МГц. Если обычным образом - контроллер и софт, то все нормально.
Я поступил в данном случае проще - в обработчике, который вызывается по запросу хоста на Data_In - поставил условие, если не выставлен флажок что данные готовы - отправляется 1 байт с содержимым 0.
Если готовы - то весь буфер. Буфер используется отдельный, для подготовки данных. И в GetInReport - содержимое копируется в InReport.
Еще. В 1343 - буферы на прием и отправку, насколько помню - аппаратные, т.е. если Вы ими пользуетесь в коде где-то, то по вызову функций отправки/приема (также аппаратно) - содержимое уйдет автоматически.
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Feb 27 2011, 21:40
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



Цитата(EXeGLuMATOR @ Feb 22 2011, 01:57) *
Ковырялся тоже с этим камушком.
Тут дело в другом - если хосту не ответить на запрос - то он перестанет опрашивать ваш девайс.
И еще - почему-то при использовании встроенного аппаратного HID у меня не получилось завести ядро на частоте выше 12МГц. Если обычным образом - контроллер и софт, то все нормально.
Я поступил в данном случае проще - в обработчике, который вызывается по запросу хоста на Data_In - поставил условие, если не выставлен флажок что данные готовы - отправляется 1 байт с содержимым 0.
Если готовы - то весь буфер. Буфер используется отдельный, для подготовки данных. И в GetInReport - содержимое копируется в InReport.
Еще. В 1343 - буферы на прием и отправку, насколько помню - аппаратные, т.е. если Вы ими пользуетесь в коде где-то, то по вызову функций отправки/приема (также аппаратно) - содержимое уйдет автоматически.


Насколько я понимаю это дело, то если у девайса нет данных для отправки хосту, то он должен ответить хосту что у него нет данных и всё и не слать данные. И поэтому хост не перестанет опрашивать девайс. Так работает мышка, как я писал выше. Так вот как так сделать?

А как вы отправляете один байт с содержимым 0 ? У нас же размер репорта изначально описан и длинна его не может меняться? То есть мы не можем отправить или один байт или несколько за один раз?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 28 2011, 09:02
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(IgorAVR2 @ Feb 28 2011, 00:40) *
Насколько я понимаю это дело, то если у девайса нет данных для отправки хосту, то он должен ответить хосту что у него нет данных и всё и не слать данные. ... Так вот как так сделать?


Просто не кладите ничего в буфер конечной точки. Тогда хосту вместо блока данных будет отправлен NAK ...

Сообщение отредактировал kovigor - Feb 28 2011, 09:03
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- IgorAVR2   USB HID LPC1343   Feb 8 2011, 21:41
- - kovigor   Цитата(IgorAVR2 @ Feb 9 2011, 01:41) Как ...   Feb 9 2011, 09:07
- - IgorAVR2   Да в том то и дело, что данные для отправки я клад...   Feb 9 2011, 22:38
|- - kovigor   Цитата(IgorAVR2 @ Feb 10 2011, 01:38) Да ...   Feb 10 2011, 07:22
- - IgorAVR2   Да я уже всё досканально разобрал, всё по сто раз ...   Feb 10 2011, 07:30
|- - kovigor   Цитата(IgorAVR2 @ Feb 10 2011, 10:30) Да ...   Feb 10 2011, 07:36
|- - IgorAVR2   Цитата(kovigor @ Feb 10 2011, 10:36) А от...   Feb 10 2011, 20:13
|- - IgorAVR2   Цитата(kovigor @ Feb 28 2011, 12:02) Прос...   Feb 28 2011, 14:24
- - goodwin   Подниму тему... Писателям этого ROM HID драйвера ...   Apr 22 2012, 07:42
- - goodwin   Попробовал подлезть и так, и эдак. Код в ROM не по...   Apr 24 2012, 07:14
- - esaulenka   goodwin, подскажите, в RL-ARM стали исходники USB ...   Apr 24 2012, 11:21
- - goodwin   Да - все в библиотеках. ЗЫ: Несколько строчек - п...   Apr 24 2012, 12:03


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 06:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016