Вывод данных на дисплей из разных источников

alex11011963
Offline
Зарегистрирован: 29.03.2020

Всем здравствуйте. Делаю один проект и зашел в тупик. Надо выводить на дисплей данные расчетов из основной программы, а по прерыванию, данные сохраненные в EEPROM. Может кто опытный направить в нужном направлении. Заменой просто данных не обойтись. Структура вывода будет несколько другая. Как правильно и с меньшими затратами переключить дисплей на разные источники данных Спасибо.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Дисплей сам по себе ничего не выводит, на дисплей выводит программа (скетч). Соответственно, Ваш вопрос лишен смысла (или неверно сформулирован).

b707
Offline
Зарегистрирован: 26.05.2017

Интересно, какого совета вы ждете?
Выводите сначала одни данные, а потом другие...
Хотите более конкретной помощи - показывайте свой код, как вы пытались решить проблему

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Дисплею совершенно всё равно, что и из каких источников Вы на него выводите.

Или Вы хотите иметь два виртуальных экрана?

alex11011963
Offline
Зарегистрирован: 29.03.2020

Всем спасибо за то что откликнулись. Понятно, что дисплею все равно. Мне надо выводить один набор данных в теле основной программы и другой, пересчитанный в прерывании. при этом основная программа не должна прерываться, т.к идет постоянный подсчет. Я так понимаю надо видимо вначале вставить код программы, а далее по прерыванию и через условие вставит блоки локальных переменных для одного и другого режима отображения.

sadman41
Offline
Зарегистрирован: 19.10.2016

На одноядерном МК невозможно сделать так, чтобы вычисления не прерывались при выполнении других действий. Хоть прерывание используй, хоть блоки локальных переменных.

alex11011963
Offline
Зарегистрирован: 29.03.2020

так я и предлагаю ветвление не делать. процесс будет идти как и шел только вывод на дисплей будет идти либо из программы либо из EEPROM по прерыванию от кнопки. Или Вы это к тому чтобы не делать прерывание, а лишь условие по кнопке и сделать задержку на считывание данных по условию и вывод новых данных на дисплей.

sadman41
Offline
Зарегистрирован: 19.10.2016

Я понятия не имею, что Вы сейчас себе рисуете в голове - задержки, условия, кнопки и как собираетесь это в кучу собирать

Но факт есть факт - чтобы выполнить одно действие, нужно прервать другое. Никаких непрерывных вычислений одновременно с выводом куда-то там на одноядерном МК не произвести.

alex11011963
Offline
Зарегистрирован: 29.03.2020

Или поставить триггер на вход от кнопки и счетчик блоков данных архива в EEPROM и с каждым нажатием изменять номер блока а на выходе Millis на сброс триггера и выход в отображение основных данных подсчета параметров. Тогда и программа будет идти обычно?

alex11011963
Offline
Зарегистрирован: 29.03.2020

ну поэтому и весь сыр-бор

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Да хоть подорожником МК оберните и морковкой бейте. Можете даже миллис сусальным золотом покрыть, а триггер из графена вручную изготовить.

Одновременно две вычислительные операции сделать он не сможет. Это все.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

alex11011963, в дополнение к уже написанному: осуществлять вывод на экран в прерывании - неправильное решение. В прерывании нужно либо устанавливать флаг того, что должно быть выведено, либо вычислять новое значение. А сам вывод осуществлять в основном цикле.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

alex11011963, Вы пишете всё очень длинно и заумно. Вам всё уже сказали,

а) параллельно ничего не выполняется - всегда выполняется что-то одно;
б) внутри обработчика прерывания лучше ничего не выводить.

Теперь попробуйте это реализовать, а если будут вопросы, выкладывайте скетч и спрашивайте.