Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование USB-устройств под DOS 
:(
    Опции темы
chetr
Дата 5.5.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2006

Репутация: нет
Всего: нет



Договорились =) мыло==> chetr_bk.ru 

Это сообщение отредактировал(а) chetr - 5.5.2006, 12:55
PM MAIL   Вверх
ManiaK
Дата 6.5.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Разрослась как тема, закреплю-ка я её... 
PM MAIL WWW   Вверх
chetr
Дата 11.5.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2006

Репутация: нет
Всего: нет



А теперь супер-вопрос для людей, знающих USB интерфейс!!! Как сделать под ДОСом, чтобы моя прога отработала и не выключила USB клавиатуру??? Какой алгоритм правильный???  
Неужели все в отпуске отдыхают??? 
Кстати для начинающих!!! Могу дать полезные ссылки на документацию!!! 

Это сообщение отредактировал(а) chetr - 23.5.2006, 19:05
PM MAIL   Вверх
Якимчук
Дата 10.6.2006, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.6.2006

Репутация: нет
Всего: нет



Книги: В. Кулаков. Программирование на аппаратном уровне, П. Агуров Интерфейс USB. Практика использования и программирования; Справочник: Driver Development Kits (DDK) XP и много другой полезной литературы можно скопировать здесь: http://www.pcports.ru/Library.php . 
См. также http://www.is.svitonline.com/vks/Links/Download.html и http://www.sibsutis.ru/~mavr/LIB/books.htm

PM MAIL   Вверх
chetr
Дата 10.6.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2006

Репутация: нет
Всего: нет



Спасибо!!! Но у меня всё это есть и даже больше!!! smile   
PM MAIL   Вверх
makwen
Дата 11.6.2006, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: 1
Всего: 1



chetr
Если есть еще что-то полезное, можешь выложить! Буду благодарен! 
PM MAIL   Вверх
chetr
Дата 18.6.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 27.1.2006

Репутация: нет
Всего: нет



http://forum.sources.ru/index.php?showtopic=131130&st=0
тут поинтереснее и есть кое-что по теме 
PM MAIL   Вверх
ManiaK
Дата 23.6.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Модератор: Господа, НИКАКИХ ВОПРОСОВ в данной теме! Только информация!.. 

Это сообщение отредактировал(а) ManiaK - 23.6.2006, 16:22
PM MAIL WWW   Вверх
KEM
Дата 29.9.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



Вот такую чудесный компонент нашол, молоэфективен еонечно, но даёт толчок в нужном направлении.
Код

//detect if a USB device is connected or disconnected?
//autor: miguel lucero
//homepage: www.lsis.com.ar
// component to detect when usb devices are connected or disconnected
// using registerdevicenotification

unit u_usb;

interface

uses
windows, messages, sysutils, classes, forms;

type

pdevbroadcasthdr = ^dev_broadcast_hdr;
dev_broadcast_hdr = packed record
dbch_size: dword;
dbch_devicetype: dword;
dbch_reserved: dword;
end;

pdevbroadcastdeviceinterface = ^dev_broadcast_deviceinterface;
dev_broadcast_deviceinterface = record
dbcc_size: dword;
dbcc_devicetype: dword;
dbcc_reserved: dword;
dbcc_classguid: tguid;
dbcc_name: short;
end;

const
guid_devinterface_usb_device: tguid = '{a5dcbf10-6530-11d2-901f-00c04fb951ed}';
dbt_devicearrival = $8000; // system detected a new device
dbt_deviceremovecomplete = $8004; // device is gone
dbt_devtyp_deviceinterface = $00000005; // device interface class

type

tcomponentusb = class(tcomponent)
private
 fwindowhandle: hwnd;
 fonusbarrival: tnotifyevent;
 fonusbremove: tnotifyevent;
 procedure wndproc(var msg: tmessage);
 function usbregister: boolean;
protected
 procedure wmdevicechange(var msg: tmessage); dynamic;
public
 constructor create(aowner: tcomponent); override;
 destructor destroy; override;
published
 property onusbarrival: tnotifyevent read fonusbarrival write fonusbarrival;
 property onusbremove: tnotifyevent read fonusbremove write fonusbremove;
end;

procedure Register;

implementation

constructor tcomponentusb.create(aowner: tcomponent);
begin
inherited create(aowner);
fwindowhandle := allocatehwnd(wndproc);
usbregister;
end;

destructor tcomponentusb.destroy;
begin
deallocatehwnd(fwindowhandle);
inherited destroy;
end;

procedure tcomponentusb.wndproc(var msg: tmessage);
begin
if (msg.msg = wm_devicechange) then
begin
try
wmdevicechange(msg);
except
application.handleexception(self);
end;
end
else
msg.result := defwindowproc(fwindowhandle, msg.msg, msg.wparam, msg.lparam);
end;

procedure tcomponentusb.wmdevicechange(var msg: tmessage);
var
devtype: integer;
datos: pdevbroadcasthdr;
begin
if (msg.wparam = dbt_devicearrival) or (msg.wparam = dbt_deviceremovecomplete) then
begin
datos := pdevbroadcasthdr(msg.lparam);
devtype := datos^.dbch_devicetype;
if devtype = dbt_devtyp_deviceinterface then
begin // usb device
if msg.wparam = dbt_devicearrival then
begin
if assigned(fonusbarrival) then
fonusbarrival(self);
end
else
begin
if assigned(fonusbremove) then
fonusbremove(self);
end;
end;
end;
end;

function tcomponentusb.usbregister: boolean;
var
dbi: dev_broadcast_deviceinterface;
size: integer;
r: pointer;
begin
result := false;
size := sizeof(dev_broadcast_deviceinterface);
zeromemory(@dbi, size);
dbi.dbcc_size := size;
dbi.dbcc_devicetype := dbt_devtyp_deviceinterface;
dbi.dbcc_reserved := 0;
dbi.dbcc_classguid := guid_devinterface_usb_device;
dbi.dbcc_name := 0;

r := registerdevicenotification(fwindowhandle, @dbi,
device_notify_window_handle
);
if assigned(r) then result := true;
end;

procedure Register;   { add this in the implementation section }
begin
  RegisterComponents('Samples', [TComponentUSB]);
end;

end.

--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
cardinal
Дата 8.11.2007, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Если надо сделать устройство для коммуникации по USB, то можно это очень просто организовать при помощи FT232RL. Схему для ATmega8 или ATmega32 найдете на сайте www.g24-tec.com...



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
rthsobakas
Дата 3.11.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



сейчас ещё usb3.0 вышла. Интересно че там изменилось.

Добавлено через 7 минут и 40 секунд
интересно хоть кто -нибудь из посылающих читать спецификацию, сам до конца прочитал весь материал по УСб?)))
PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.1281 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.