Помогите разобраться. Впервые, как пересел на си, использую EEPROM.Так как целевого кристалла нет на руках, для испытаний взял 8535. И всплыл неприятный момент. В проекте используются дисплей, клавиатура. Соответственно, меню. Так вот, при попытке записать данные в еепром МК сбрасывается. Отключил прерывания, перед и после записи в еепром сброс сторожевого таймера, сбрасываться перестал, но не корректно записываются данные. И программа не корректно после этого выполняется. По дизасму вроде все нормально...
RSEG CODE:CODE:NOROOT(1)
?eeput16_inc:
SUBI Q0,255
SBCI Q1,255
?eeput16:
OUT EEARL,Q0
OUT EEARH,Q1
CLI
SBI EECR,EEMWE
SBI EECR,EEWE
OUT SREG,T0
RET
В программе сделано так:
void save_sett_quant (void)
{
sett_quant = tui_sett_quant;
asm("WDR");
volatile register u08 a = SREG;
asm("CLI");
if (ee_sett_quant != sett_quant)
{
ee_sett_quant = sett_quant;
}
SREG = a;
asm("WDR");
set_menu (L_OUT_MODE);
}