Страница 1 из 1

Ститывать из EEPROM каждый цикл.

Добавлено: 09 сен 2021, 08:26
kbplug
Добрый день интересует вопрос, насколько коректным будет ститывать из EEPROM каждый цикл программы?
На сколько это увеличивает быстродействие?
Знімок екрана 2021-09-09 082101.png

Ститывать из EEPROM каждый цикл.

Добавлено: 09 сен 2021, 08:55
Sancho
kbplug писал(а): 09 сен 2021, 08:26 На сколько это увеличивает быстродействие?
Чтение одного байта из eeprom занимает около 0.4 мкс.

Ститывать из EEPROM каждый цикл.

Добавлено: 10 сен 2021, 10:31
Di123
а разве чтение из епром не входит в цикл программы ?
там же любой блок удлиняет цикл программы

Ститывать из EEPROM каждый цикл.

Добавлено: 10 сен 2021, 10:57
kbplug
[ref=#ff8000]Sancho[/ref], спасибо.

Ошибся в первом посте, имел ввиду на сколько уменшает быстродействие.

Ститывать из EEPROM каждый цикл.

Добавлено: 10 сен 2021, 14:22
Dryundel
kbplug писал(а): 10 сен 2021, 10:57 Ошибся в первом посте, имел ввиду на сколько уменшает быстродействие.
Sancho писал(а): 09 сен 2021, 08:55 Чтение одного байта из eeprom занимает около 0.4 мкс.
Теоретически да, время считывания одного байта из eeprom занимает около 0.4 мкс. Но практически, а конкретно в данном случае, работа осуществляется через библиотеку eeprom.h, и каждый запрос вызывает функцию этой библиотеки, а соответственно и увеличивает время выполнения цикла довольно существенно.

[ref]kbplug[/ref], Если Вам так важно сократить количество считываний, запускайте считывание каждые 100 циклов к примеру. Или воспользуйтесь наработками [ref]ecoins[/ref]. Придется изучить. :)

А здесь Вы найдете практически все основы работы с EEPROM

Ститывать из EEPROM каждый цикл.

Добавлено: 10 сен 2021, 16:21
Dryundel
Сразу в личку прилетел вопрос:
Привет ! не подскажешь сделать считывать через 100 циклов в программе ?
Способов довольно много.
Ну как вариант, Делаем свой блок с простецким кодом, который будет генерить один короткий импульс за 100 циклов:

Код: Выделить всё

if (_cycle == 100)
{
	cycle100 = 1;
	_cycle =0;
}
else
{
	cycle100 =0;
}
_cycle++;
Вставляем его в любое место проекта, на плату которая всегда работает.
Ту часть программы, которая должна выполняться один раз в 100 циклов, запускаем по условию.
Теперь конкретная плата будет работать только в момент генерации импульса.

Ну как то так:
100циклов.jpg
Работа 1 раз в 100 циклов.flp