Цитата(smk @ Dec 16 2014, 21:14)

Вот такое предупреждение. Что опять не так? Указатель нужен?
Да, нужен. смотрите еще раз:
Код
eeprom_write_byte((uint8_t *)0x0A, mode);
А теперь смотрите на свой код:
Код
mode = eeprom_read_byte (0x0A);
Видите разницу около 0x0A?
Цитата(smk @ Dec 16 2014, 21:31)

Ну вот... О1 и уже не работает.
Естественно. Ваша функция delay не делает с точки зрения компилятора ничего полезного. Наоборот, она делает маленькую быструю программу большой и медленной. Оптимизатор выкинул ее нафиг.
Изучайте
<util/delay.h>Цитата(smk @ Dec 16 2014, 21:14)

С кейлом таких чудес небыло ни разу.
Там настолько плохой компилятор, что не умеет выкидывать пустые циклы?
Цитата(smk @ Dec 16 2014, 21:14)

на тини отлично все работает. Версия компилятора не изменилась. В чем смысл тогда?
Откройте листинги, сравните, найдите разницу.