Столкнулся с такой проблемой. В Tiny13 можно менять тактовую частоту АЛУ и остальных устройств за счет предделителя. По умолчанию Стоит частота 9,6 Мгц с предделением на 8. Простая программа записи (стирания) байта в EEPROM при коэффициенте деления предделителя до 16 (включительно) работает в Proteus нормально. А вот с делением более 16 при моделировании выдает ошибку, что запись не произошла, т.к. бит разрешения записи был аппаратно сброшен до начала самой записи (ну, или как-то так). И после этого остальная часть программы начинает работать не корректно. У меня возникли сомнения по поводу того, на реальной AtTiny есть ли такой баг (или это вовсе не баг?) или же это проблемы с Proteus (а может, в моих кривых руках)? Я так понимаю, тактирование EEPROM осуществляется также после предделителя или на прямую от тактового генератора? По схеме в даташите на нее идут сигналы и оттуда, и оттуда.... Совсем растерялся. Проверить на реальной схеме не имею возможности. Буду благодарен за любую помощь в данном вопросе.
на СИ код выглядит так:
#define DATA 55
//Установка предделителя
CLKPR=0x80;
CLKPR=0x08; // от 0 до 4 работает нормально, больше 4 выдает ошибку при моделировании
//запись в EPROM
while (EECR.EEPE=1);
EECR.EEPM0=0; //режим
EECR.EEPM1=1; //только записи
EEAR=0; // ну, или любой другой адрес
EEDR=DATA;
#asm("cli") // если прерываний нет - мона не писать
EECR.EEMPE=1;
EECR.EEPE=1;
#asm("sei") // если прерываний нет - мона не писать
{
далее пошел другой код
}

