Цитата(Zazou @ Apr 13 2008, 21:11)

Как узнать с какой частотой максимально можно дрыгать ножкой?(asm незнаю).
Хочу подключить авр через FT245BM(FIFO-USB) к усб компьютера. И разогнать его до 8Mbps, сижу вот думаю, успеет ли авр ножками дрыгать или не успеет. dsp не очень хочется ставить из за USB.
Я месяц назад как раз делал нечто подобное: Мега8, 16 Мгц, FT245BM.
Максимум на что мне удалсь подняться -- это 360 КБайт/с. Каждый байт мега выбирала из своей памяти и закидывала его в FT245BM за 2.75 us. Потом в работе с 245-ым, естественно, возникала небольшая пауза, связанная с накоплением новой порции инфы и другими прочими делами, типа посмотреть "а не пришло-ли что с юсб" или "не нажал-ли какую-нибудь кнопочку юзер", ну и т.д, и т.п.
Прогу я писал ислючительно на Си (CV 1.25.3), ассемблер не использовал.
Прога высылает и получает инфу в виде коротких пакетов. Передаваемая инфа -- это двоичные данные. Пакеты передается в виде неперерывного потока. Соответственно, на приемном конце возникает проблема: обратно выделять из непрерывного потока эти пакеты, т.е. нужно уметь как-то идентифицировать начало каждого пакета. Я пошел по пути "стаффинга". Исходники приложил (1.45 KB). Они выдернуты из рабочего проекта, работают без нареканий. Юзайте на здоровье!

Если часть кода напишите на асме, то, думаю, сможете поднять скорость передачи раза в два.
Удачи!
Прикрепленные файлы
usbdrv.rar ( 1.54 килобайт )
Кол-во скачиваний: 55