Jump to content
Sign in to follow this  
Alex K

Скорость вывода на дисплей HD44780 через IIC (Arduino Nano)

Recommended Posts

Итак, имею китайскую копию Arduino nano, символьный дисплей 4х20 на hd44780 от Winstar и I2C адаптер на PCF8574. Используется библиотека LiquidCrystal_I2C с дописанной таблицей изменения кодов кириллических символов для соответствия винстаровской таблице кодировки. 

Проблема - вывод нескольких символов в каждую из строк в сумме занимает более 200 миллисекунд (используются только команда смещения курсора и вывод символа).

Возможно ли ускорить процедуру вывода (например, сбрасывая вывод в буфер шины i2c и уходя делать другие процессорные дела)? Желательно с примером.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Какой Вы, @Александр2 интересный собеседник!
    • INTERRUPT_HANDLER(EXTI_PORTA_IRQHandler, 3) { disableInterrupts(); .................... enableInterrupts(); } Это Ваш код?  Вложенные прерывания невозможно запретить таким методом. Входные скобки обработчиков генерируют сохранение контекста, а выходные восстановление контекста и специальную команду выхода из прерывания IRET. Если вложенные прерывания разрешены, то между  входом в ISR и строкой  disableInterrupts(), а также между строкой enableInterrupts() и выходом более чем достаточно времени для повторного входа в прерывание. А если вложенные прерывания запрещены, то переход по вектору ISR АВТОМАТИЧЕСКИ гасит  глобальное разрешение прерываний, а команда выхода из ISR  - IRET (закрывающая скобка) так же автоматически его разрешает. В ОДНОМ МАШИННОМ ЦИКЛЕ. То есть повторный вход полностью исключен. Компилятор вместе с линкером обеспечивают автоматическую генерацию специфического кода обработчиков прерываний и не требуют ничего кроме гашения флагов периферийных прерываний, которые собственно и генерируют само прерывание. Хотя некоторые периферийные модули сбрасывают флаги автоматически и даже этим можно не заморачиваться. А вообще, ознакомьтесь с мануалом по программированию выбранного Вами МК: https://www.st.com/content/ccc/resource/technical/document/programming_manual/43/24/13/9a/89/df/45/ed/CD00161709.pdf/files/CD00161709.pdf/jcr:content/translations/en.CD00161709.pdf
    • Логическая инверсия дает ошибку всего в 10%.
    • Да ну! Их сломать еще постараться надо. Это не ТО-92.
    • В чем подвох? Обе РЛС никуда не годные?
×
×
  • Create New...