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

Дисплей на SSD1306

СообщениеДобавлено: 18 сен 2018, 19:32
mersss
Здравствуйте участники форума, выкладываю пример работы дисплея SSD1306 по шине i2c (пример взял где то тут на форуме не помню где уже, дело было давно для себя я там всё подписал) и хочу спросить у вас совета, данный пример сжирает очень много памяти данных контроллера, а если я весь массив символов перенесу во внешнюю микросхему EPROM типа 24с512 и т.д. то как это может сказаться на скорости отображения (мультфильмы я на нём смотреть не планирую). Proteus там восьмой....

Re: Дисплей на SSD1306

СообщениеДобавлено: 19 сен 2018, 06:06
mim

Re: Дисплей на SSD1306

СообщениеДобавлено: 19 сен 2018, 20:08
mersss


Спасибо вам MIM, вы дали ссылку на способ размещения массива в "памяти программ" это весьма интересное решение. А вот если я размещу данные массива во внешней памяти (разумеется ручками), то как это отразится на скорости вывода данных на дисплей? Эта затея имеет смысл или скорость отображения чисел (если я вывожу данные в виде вольтметра "5,04 Volt" будет низкая). Сформулирую так, вывел строку 5,00 Volt а потом сразу вывожу строку 5,57 Volt сколько, как вы считаете времени может занять данная процедура чтения и вывода на экран из внешней памяти типа там 24С08 и прочие 24С... на экран дисплея ?

Re: Дисплей на SSD1306

СообщениеДобавлено: 19 сен 2018, 21:26
Андрей
Имейте в виду что дисплей у вас работает по I2C, 24хх память тоже работает по I2C. Соответственно вам придется делить шину на два устройства, скорость конечно упадёт вопрос насколько кретично. Несчитая того что ещё придётся переключать поочерёдно память и дисплей по адресу (если дисплей поддерживает, входа CS у него нет). У памяти 24хх этого входа тоже нет, как вариант использовать дополнительный программный порт I2C, но это тоже дополнительное время в цикле программы. Иногда приходится делать выбор между временем выполнения цикла и загруженностью оперативной памяти.

Re: Дисплей на SSD1306

СообщениеДобавлено: 20 сен 2018, 05:54
mim
Такие вопросы решаются как два пальца об асфальт... Достаточно количество байт (понимай общее кол-во бит) участвующих в чтении данных из внешней памяти (старт-стоп можно пренебречь) умножить на период частоты чтения. Если шина одна, частота работы дисплея 400 Кгц - время доставания оного байта данных из памяти будет приблизительно равно 130 мкс. Второй способ займет минут 20 - все сделать в FC и Протеусе и увидеть это в живую - как это сделал я (еще очень давно, пример гдето на форуме)...
T.jpg