Перейти к содержанию
    

Обращаю внимание на то, что в проектах с указанным USB драйвером следует использовать последнюю версию, всегда присутствующую в reference-проекте PowerSwitch (там и только там она и обновляется).

 

Текущая версия - от 20.02.2006. В более ранних есть неприятный баг, проявляющийся по разному - от непреднамеренного вызова callback-функции usbFunctionRead() перед usbFunctionWrite() до потери пакетов при жестких времянках со стороны хоста. После обновления все проблемы исчезли. Проявляется не во всех ситуациях, но лучше обновить.

 

Что-то я не нашел там этой книжки :-(

Только что проверил - лежит. Ищи по слову USB на странице с разделом "Программирование".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все равно не нашел. Как хоть книжка называется - поисковиком поищу

Часть 1. 5'222'400 bytes

Часть 2. 4'588'974 bytes

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вперся в непонятный глюк.

 

Сделал фьючерепорты, сделал их обработку.

При чтении - все ок, при записи -запись проходит, но хид-драйвер возвращает "device not functioning properly" в приложение.

Следующее чтение показывают что на самом деле все ок, запись в буфер прошла.

 

Причину понять совершенно не могу.

 

ЗЫ: Кто последовал совету включить оптимизации -Оо,обратите внимание.

WinAVR в таком режиме заоптимизирует выражение типа

 

переменная=+<регистр> (например tmp=+ADC)

во что-то совершенно дикое.

 

хотя в -О2 все работает совершенно нормально

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вперся в непонятный глюк.

...

переменная=+<регистр> (например tmp=+ADC)

во что-то совершенно дикое.

 

хотя в -О2 все работает совершенно нормально

 

Можно наивный вопрос: а что за операция языка C такая "=+"? Я знаю операцию "+=", то есть, добавить к левому lvalue значение правого выражения. А "=+", если значение порта представлено константным адресом (например, 0x1f) превратится в "переменная = +0x1f". То есть, если ожидалось накопление считанных значений в переменной, то этого не будет по определению.

 

Может, дело в этом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вперся в непонятный глюк.

...

 

....

Может, дело в этом?

 

@#$%@ !!!

 

Слов нет. Естественно !!!

 

Надо же - два дня смотреть в переклине как баран на новые ворота, не замечая самую тупую ошибку. :-(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слов нет. Естественно !!!

К слову говоря, я обычно отделяю операнды от операции пробелами. Будь оно записано так:

 

var =+ ADC

Вероятнее всего, компилятор бы сразу выругался, что символ знака числа отделен пробелом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...