Ну я как бы уже... оно правда не столько библиотека, сколько код оптимизированный под переделку (не люблю я универсальные либы, предпочитаю код подтачивать под конкретный пример)Вот для этого я и написал, что у вас есть хороший шанс отличиться и сделать свою "безупречную" библиотеку:)
http://easyelectronics.ru/avr-uchebnyj- ... c-i2c.html
Обрабатывается полный автомат TWI все происходит на прерываниях не мешая фоновой задаче. Без какого либо ожидания вообще.
Полностью реализован мастер Готовые шаблоны работы в режиме простой записи/чтения, так и чтения с предварительным загрузом адреса страницы (для еепром). Найдете что то лучше дайте знать
Почти полностью реализован арбитраж шины и работа в режиме мультимастера (забил на выделенный бродкаст, он обрабатывается в едином кейсе с собственным адресом. Но если надо спец фичу туда - добавить будет легко). Спокойно работает в режиме мастера и слейва одновременно (т.е. корректно отрабатывается перехват арбитража и получение собственного адреса во время работы мастером, происходит переключение на ведомого, а потом прерваная передача продолжается).
Почти полностью реализован ведомый. Не стал делать режим аля еепром, с предварительным заносом адреса страницы через повстарт. ИМХО не самый удобный способ общаться между двумя МК, Проще гонять таблицы данных сразу. Но допилить недолго по необходимости.
Найдете что то лучше - сообщите



