Здравствуйте. Думаете интересно разбираться в этой куче файлов, что выложили, без подробного описания?
Кнопочки для изменения pA и pV на проекте в протеусе почему не нарисовали? Без нажатия на них значения
всегда будут одни и те же...
В программе как собираетесь хранить два значения в одной ячейке ЕЕПРОМа?
Во вложении чуть исправленный код, сейчас все запоминает и читает. Как оно там дальше работает не разбирался,
да и дисплея нет у меня такого, чтобы посмотреть. Пока не нажмете на кнопки, которые по Вашему же коду, подключены
к:
Код: Выделить всё
if((PIND&(1 << PD2)) == 0){ // если кнопка 3 нажата
_delay_ms(50);
pV = pV+5;} //плюс вольты
if((PIND&(1 << PD3)) == 0){ // если кнопка 4 нажата
_delay_ms(50);
pV = pV-5;} //минус вольты
if((PIND&(1 << PD4)) == 0){ // если кнопка 5 нажата
_delay_ms(50);
pA = pA+5;} //плюс амперы
if((PIND&(1 << PD5)) == 0){ // если кнопка 6 нажата
_delay_ms(50);
pA = pA-5;} //минус амперы
ничего и не пишется при первом включении.
После того как данные будут записаны в EEPROM, то они потом считаются при следующем включении и они же запишутся,
если их не измените своими отсутствующими кнопками. Поэтому советую использовать не
eeprom_write_byte
, а так:
eeprom_update_block
раз уж все равно пишутся два значения при нажатии на кнопку, но это не принципиально

Во вложении раскоментируйте строчку:
//#define F_CPU 8000000
и если Ваш компилятор не выдавал предупреждений, то поправьте как было в определении функции:
void presets(void)
, хотя должны были быть предупреждения на такое:
void presets()
, но я не знаток, утверждать не буду...
P.S. Вообще чего огорчаться, нормально программу написали, например, я так не умею, может научусь

Да и не каждый сумеет, не огорчайтесь
