Цитата(Владимир_КПИ @ Feb 10 2008, 22:55)

То есть после установки бита EEMPE менее чем за 4-е такта нужно установить EEWE? Но эти две команды стоят одна за другой.
Это в С они стоят рядом, что при этом будет при компиляции зависит
от выбранного уровня оптимизации, при отключенной, >4 тактов запросто.
Цитата
Как включить оптимизацию?
CV не знаю, исчите в меню или читайте хелп.
Цитата
1<<EEWE - сдвиг 1 влево EEWE раз. Какой единицы? А чему равно EEWE? Это значение бита EEWE регистра EECR? Ничего не понятно.
Вот что написано в книге по поводу сдвига. Пример:
x=7 00000111
x=x<<1 00001110
1<<X
пусть X=3, тогда
было 00000001 (1)
стало 00001000 (1<<3)
EEWE - номер бита в EECR который содержит соответствующий флаг.
должен быть описан в соответствующем include файле, типа так:
#define EEWE 1
те запись (1<<EEWE) <=> (1<<1) <=> 0b00000010
Цитата
Почему нельзя просто написать EECR.1=1?
можно, но не всегда, ищите в даташитах
упоминание Read-Modify-Write...
EECR |= (1<<EEWE) означает:
-прочитать регистр EECR
-загрузить в другой регистр константу (1<<EEWE)
-сделать OR между 2 регистрами
-записать результат в EECR
надеюсь теперь понятно откуда берутся >4 тактов между записями EEMWE EEWE
кстати у Вас похоже какие-то запутки с инклудами,
то у Вас EEMWE то EEMPE - это конечно одно и то же,
просто атмел в какой-то момент сменил имя и нужно свериться с инклудом на Ваш чип