Цитата
"Модуль TWI прекрасно подходит для обмена информацией с EEPROM производства Atmel"примерно так
Это заметно И пожалуй больше не для чего.

Насколько хорош TWI у мег, настолько паскуден у АРМов. А казалось бы одна контора, могли использовать одинаковый IP-блок.
Цитата
>> if(hTimer_1ms) hTimer_1ms();>> if(hTimer_1s) hTimer_1s();Насколько бысторо выполняются эти 2 функции ?
в милисекундном стоит счетчик на 50 мс. В нем сдвиг бегущего бита и чтение порта. В секундном - мигание светодиодом.
Цитата
любая транзакция(прерывание) по i2c должна заканчиваться записью TWINT в TWCRиначе будем бесконечно ловить прерыванияпо этому в конце switch обязательно должно быть:
Вы об этом? Так я ж сказал - поскипано для ясности. Отрабатываются все возможные состояния - general call,arbitration lost итд, default тоже есть. Предусмотрена работа с раздельными буферами приема и передачи, софтовый байт статуса с флагами занятости и ошибки. А вот написано местами весьма неоптимально - весь файл представляет собой switch на 300 строк.
Цитата
скорее вот этот адрес -> вычитывание большого блока
Мне кажется это генетическое. В прошлом году делал проект, где из EEPROM вытягивалась программа в эдаком байт-коде и передавалась на исполнение. Я на вытягивание программы убил вдвое больше времени, чем на отладку интепретатора. Терялись биты в конце. Было два решения - либо ставить холостой байт в конце каждого блока либо брать меньшими порциями. Побил вычитку на блоки по 32 байта - все работает без вопросов и живет в серии.