Библиотека LUFA (раннее название MyUSB) версия 101122
|
Functions | |
void | EVENT_USB_UIDChange (void) |
void | EVENT_USB_Host_HostError (const uint8_t ErrorCode) |
void | EVENT_USB_Host_DeviceAttached (void) |
void | EVENT_USB_Host_DeviceUnattached (void) |
void | EVENT_USB_Host_DeviceEnumerationFailed (const uint8_t ErrorCode, const uint8_t SubErrorCode) |
void | EVENT_USB_Host_DeviceEnumerationComplete (void) |
void | EVENT_USB_Host_StartOfFrame (void) |
void | EVENT_USB_Device_Connect (void) |
void | EVENT_USB_Device_Disconnect (void) |
void | EVENT_USB_Device_ControlRequest (void) |
void | EVENT_USB_Device_ConfigurationChanged (void) |
void | EVENT_USB_Device_Suspend (void) |
void | EVENT_USB_Device_WakeUp (void) |
void | EVENT_USB_Device_Reset (void) |
void | EVENT_USB_Device_StartOfFrame (void) |
Этот файл содержит макросы и функции, относящиеся к управлению событиями библиотеки, которые являются маленькой частью кода наподобие ISR (подпрограмма обработчика прерывания), которая запускается, когда происходят указанные для этого условия. Каждое событие может быть запущено из многих мест в коде пользователя или коде библиотеки, который может быть или не быть внутри ISR, поэтому каждый хэндлер должен быть минимальным по объему и максимально быстрым, чтобы минимизировать возможные проблемы.
События могут быть перехвачены приложением пользователя путем декларирования функции обработчика с тем же самым именем и параметрами, перечисленными здесь. Если событие не имеет привязанного пользователем обработчика, то оно запускается внутри библиотеки по умолчанию привязанным к внутренней пустой функции-заглушке.
Каждое событие должно иметь только один связанный обработчик события (event handler), однако обработчик может быть вызыван из многих мест (с любыми требуемыми параметрами события).
void EVENT_USB_Device_ConfigurationChanged | ( | void | ) |
Событие для смены номера конфигурации USB. Запускается в режиме устройства USB, когда хост USB изменил выбранный номер конфигурации. Событие должно быть перехвачено в приложениях устройства для создания конечных точек и перенастройки устройства для выбранной конфигурации.
Это событие критично к времени выполнения; превышение в обработчике задержек, зависящих от операционной системы (обычно около 1 секунды) приведет к ошибке энумерации устройства.
Это событие запускается после изменения значения USB_ConfigurationNumber.
void EVENT_USB_Device_Connect | ( | void | ) |
Событие для подключения устройства USB. Событие запускается, когда AVR находится в режиме устройства и устройство соединено с хостом, начинается процесс энумерации, измеряемый по переднему фронту уровня VBUS-ножки AVR.
Это событие критично к времени выполнения; превышение в обработчике зависящих от операционной системы задержек (обычно около двух секунд) приведет к невозможности правильной энумерации устройства.
void EVENT_USB_Device_ControlRequest | ( | void | ) |
Событие для запросов управления (control request). Запускается, когда хост USB выдает запрос управления на обязательную конечную точку управления устройства (с адресом 0). Это может быть либо стандартный запрос, для которого библиотека может иметь внутренний код обработки, или запрос специфичный для класа, выданный на устройство, который должен быть обработан соответствующим образом. Если запрос не обрабатывается в приложении пользователя через это событие, он будет передан библиотеке для внутренней обработки, если имеется подходящий обработчик.
Это событие критично к времени выполнения; каждый пакет в транзакции запроса должен быть подтввержден или отправлен в течение 50 мс, или хост прервет передачу.
Библиотека обрабатывает внутри себя все стандартные запросы управления, за исключением SYNC FRAME, SET DESCRIPTOR и SET INTERFACE. Эти и все другие нестандартные запросы управления будут оставлены для обработки пользователем через это событие, если необходимо. Если запрос не обрабатывается ни в приложении пользователя, ни библиотекой, то эти неизвестные запросы автоматически переводятся в состояние STALL.
void EVENT_USB_Device_Disconnect | ( | void | ) |
Событие для рассоединения устройства USB. Событие срабатывает, когда AVR находится в режиме USB-устройства, и это устройство отсоединено от хоста, что определено по спаду уровня на ножке VBUS чипа AVR.
void EVENT_USB_Device_Reset | ( | void | ) |
Событие сброса интерфейса USB. Событие запускается, когда интерфейс USB в режиме устройства, и хост USB делает запрос для сброса устройством своего интерфейса. Событие запускается после того, как конечная точка управления автоматически сконфигурируется библиотекой.
Это событие критично к времени выполнения; превышение в обработчике зависящих от операционной системы задержек (обычно около двух секунд) приведет к невозможности правильной энумерации устройства.
void EVENT_USB_Device_StartOfFrame | ( | void | ) |
Обработчик события для детектирования USB Start Of Frame (SOF), когда это разрешено. Это событие запускается в начале каждого фрейма USB, раз в милисекунду, и синхронизируется шиной USB. Может быть использовано в режиме устройства USB для работы точного милисекундного таймера, когда шина USB прошла энумерацию хостом.
Это событие критично к времени выполнения; оно запускается раз в милисекунду, и поэтому длинные обработчики значительно уменьшат производительность устройства. Это событие должно быть разрешено только с целью уменьшения пробуждений устройства.
void EVENT_USB_Device_Suspend | ( | void | ) |
Событие приостановки (suspend) USB. Запускается, когда хост USB приостанавливает устройство, прервав передачу на устройство импульсов Start Of Frame. Обычно перехватывается для перевода устройства в режим низкого энергопотребления, пока хост не разбудит устройство снова. Если интерфейс USB прошел энумерацию с установленной опцией USB_OPT_AUTO_PLL, библиотека автоматически приостанавливает USB PLL перед запуском события для перехода в режим сохранения энергии.
void EVENT_USB_Device_WakeUp | ( | void | ) |
Событие для пробуждения USB. Запускается, когда в режиме устройства интерфейс USB приостановлен, и хост будит устройство выдачей импульсов Start Of Frame. Обычно перехватывается для вывода программы пользователя из состояния низкого энергопотребления и возвращения в режим нормальной работы. Если интерфейс USB прошел энумерацию с установленной опцией USB_OPT_AUTO_PLL, библиотека автоматически перезагрузит USB PLL перед запуском этого события.
void EVENT_USB_Host_DeviceAttached | ( | void | ) |
Событие подключения устройства USB. Это событие срабатывает, когда интерфейс USB работает в режиме хоста, и к интерфейсу USB подключено внешнее устройство USB. Это событие обрабатывается по прерыванию, поэтому запускается перед стандартным событием EVENT_USB_Device_Connect(), и таким образом может использоваться для программного запуска задачи поддержки USB, чтобы уменьшить затраты времени CPU.
void EVENT_USB_Host_DeviceEnumerationComplete | ( | void | ) |
Событие для завершения энумерации устройства USB. Это событие запускается, когда интерфейс USB работает в режиме хоста, и подключенное устройство USB полностью энумеровано и готово к управлению со стороны приложения пользователя.
Это событие критично к времени выполнения; превышение в обработчике задержек, зависящих от операционной системы, (обычно около 1 секунды), когда транзакция ожидает обработки устройством, приведет к обрыву коммуникации и к сбросу хостом шины USB.
void EVENT_USB_Host_DeviceEnumerationFailed | ( | const uint8_t | ErrorCode, |
const uint8_t | SubErrorCode | ||
) |
Событие для ошибки, произошедшей при ошибке энумерации устройства USB. Это событие запускается, когда интерфейс USB находится в режиме хоста, и подключенное устройство USB не смогло полностью пройти энумерацию.
[in] | ErrorCode | код ошибки, показывающий её причину, из USB_Host_EnumerationErrorCodes_t. |
[in] | SubErrorCode | субкод ошибки, показывающий причину - например, если параметр ErrorCode показывает ошибку управления, субкод дает код ошибки, возвращаемый функцией USB_Host_SendControlRequest(). |
void EVENT_USB_Host_DeviceUnattached | ( | void | ) |
Событие для удаления устройства USB. Это событие срабатывает, когда интерфейс USB работает в режиме хоста, и устройство USB удалено из интерфейса USB, независимо от того, прошло оно или нет энумерацию. This can be used to programmatically stop the USB management task to reduce CPU consumption.
void EVENT_USB_Host_HostError | ( | const uint8_t | ErrorCode | ) |
Событие ошибки хоста USB. Это событие срабатывает при аппаратной ошибке, когда интерфейс USB находится в режиме хоста.
[in] | ErrorCode | код ошибки, показывающий причину ошибки, значение из USB_Host_ErrorCodes_t. |
void EVENT_USB_Host_StartOfFrame | ( | void | ) |
Обработчик события для детектирования USB Start Of Frame (SOF), когда это разрешено. Это событие запускается в начале каждого фрейма USB, раз в милисекунду, и синхронизируется шиной USB. Может использоваться для точного милисекундного таймера, когда шина USB не приостановлена в режиме хоста.
Это событие критично к времени выполнения; оно запускается раз в милисекунду, и поэтому длинные обработчики значительно уменьшат производительность устройства. Это событие должно быть разрешено только с целью уменьшения пробуждений устройства.
void EVENT_USB_UIDChange | ( | void | ) |
Событие для изменения уровня ножки режима USB. Это событие запускается, когда интерфейс USB устанавливается в режим двойной роли, и на ножке UID меняется уровень, чтобы показать новый режим (USB-устройство или USB-хост). Это событие запускается перед тем, как режим переключен в новое показанное состояние, однако после события EVENT_USB_Device_Disconnect (если произошло разединение перед изменением роли).