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

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 13:48
pan
RaiF-03 писал(а): 06 янв 2018, 12:55Во втором случает запись происходит по высокому уровню на входе EN?
да... записывает только по входу EN , но и записывает она в "себя" его же (en), грубо говоря она всегда записывает только 1.
ну да ладно. я просто обратил внимание. вам виднее

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 14:05
RaiF-03
[ref]pan[/ref], и все равно мне кажется что я вас не до конца понял)
pan писал(а): 06 янв 2018, 13:48грубо говоря она всегда записывает только 1.
Не всегда, если инвертировать вход, то и 0 можно записать)
По другому я не смог придумать, иначе не работает так как хотелось.

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 14:08
pan
а просто поставить нужную константу не? ))
Изображение

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 14:47
RaiF-03
[ref]pan[/ref], ну да) все я понял теперь что вы мне хотели объяснить)) Ну что сказать, легких путей не ищем)

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 16:14
ecoins
Проблема в драйвере LCD.
Другого драйвера в природе пока нет - точнее не удалось обнаружить.
На выдачу одной строки уходит в 20 символов тратиться 27 ms.
Давно решаю проблему с распределением вывода на LCD используя псевдо RTOS на FLProg.
Драйвер этот давно хочется переделать, но все как-то откладывается...

Такие же проблемы были c драйверами HC-SR04 (это решил по прерыванию), c DS18B20 (это решил через упомянутую RTOS), DHT - одно измерение (например 1 раз в секунду) тормозит примерно на 5 ms (в планах переделать).

В основном проблемы возникают из-за использования в драйверах двух очень вредных команд - delay() и pulseIn(). На время выполнения этих команд контроллер "зависает" - возможно работают только прерывания, которые традиционно в Arduino используют слабо и неохотно. В частности использования прерываний от таймеров ограничивают использование некоторых пинов в режиме ШИМ.

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

Полезный материал на тему таймеров и аппаратных прерываний:
http://arduino.ru/Tutorial/Arduino_Interrupts

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 16:32
RaiF-03
[ref]ecoins[/ref], Чем больше текста на дисплее, тем больше тормозов... Таки сделал для второго дисплея отдельную ардуино.

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 16:38
pan
а вы не пробовали отправлять данные на дисплей не постоянно, а только по надобности?

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 16:53
RaiF-03
[ref]pan[/ref], Не пробовал, так как не знаю как это сделать...

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 17:02
pan
много вариантов.
  1. выводить данные например раз в секунду.
  2. вынести "блоки дисплеев" на отдельную плату и выполнять всю плату по необходимости обновить данные на дисплее (или через некий промежуток времени).
  3. отправлять данные на дисплей только если они изменились.

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 17:22
RaiF-03
[ref]pan[/ref], таких функции в блоке дисплея нету... или я недопонял вас снова. Можете пример показать?

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 17:39
pan
[ref]RaiF-03[/ref], конечно нету. это нужно организовать в программе.

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 21:20
RaiF-03
[ref]pan[/ref], Вроде так должно получиться?
В первом варианте отправка данных идет если они изменились
333.jpg
Во втором варианте данные отправляются каждые 300мс
3333.png
Если оно правильно то все равно ничего не изменилось.

Тормозит ардуина или дисплей?

Добавлено: 06 янв 2018, 21:38
pan
зачем вы всё запихиваете в блоки...
нет. не так всё должно получиться.
примерно вот так
Изображение

Тормозит ардуина или дисплей?

Добавлено: 08 янв 2018, 13:38
RaiF-03
[ref]pan[/ref], совсем не то что хотелось... Взять к примеру модуль часов реального времени: при изменении строки часы появляются на доли секунды и пропадают. Вообщем, спасибо за помощь.

Тормозит ардуина или дисплей?

Добавлено: 08 янв 2018, 15:29
pan
[ref]RaiF-03[/ref], блин, точно. я с другим блоком спутал. в штатном пропадает отображение.
значит надо не сигнал EN активировать , а плату на которой блоки дисплея.

Тормозит ардуина или дисплей?

Добавлено: 18 янв 2018, 22:29
ecoins
Проблема в библиотеке для дисплея.В ней очень много вставок delay().
Уже есть другая библиотека, испытанная под FLProg но с нестандартным блоком пользователя.
Но это требует и несколько иного подхода к разработке программы - работа с реальным временем.

Тормозит ардуина или дисплей?

Добавлено: 23 янв 2018, 22:42
ecoins
Проблема в стандартной библиотеке, там много раз используется delay()

Отправлено спустя 1 минуту 2 секунды:
По библиотеке - пришлите email - вышлю с примером