Цитата(Gennadiy_ @ Oct 26 2006, 15:41)

надо принять и передать количество бит не кратное 8ми, желательно на предельной скорости, с этой задачей неплохо справиться USI, но его нет в AT90USBхххх .
Какие есть предложения?
Пришел в голову четвертый вариант, наиболее простой.
1) Настраиваете SPI на скорость 8 Мбит/с
2) Вместо SCK используете выход OCR1A (на 8 МГц).
3) Округлите ваши байты в большую сторону и начните передавать.
4) Настройте прерывание таймера0 на время передачи N бит. Прерывание должно запрещать импульсы с OCR1A.
Как только вы передадите N бит, наступит прерывание, которое остановит выдачу импульсов синхронизации, следовательно, прекратится передача битов во внешнее устройство. Для надежности можно загнать в последний байт соответствующие единички или нули.