Например TDA7294

Форум РадиоКот • Просмотр темы - U8glib SPI бесконечный цикл тормозит программу
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 01:08:55

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: U8glib SPI бесконечный цикл тормозит программу
СообщениеДобавлено: Пт июл 06, 2018 12:05:02 
Встал на лапы

Зарегистрирован: Чт дек 07, 2017 13:48:44
Сообщений: 142
Рейтинг сообщения: 0
Приветствую, комрады!
Вопрос видимо банальный, но опыта (да и знаний) нет, а ответа в инете не нашел.
Проект на ATmega328 предусматривает подключение периферийных устройств как Bluetooth модуль (UART), ИК модуль (I2C), LCD SSD1306 (SPI). Плюс, таймер, обработчик кнопок и АЦП для контроля АКБ.
Для работы с LCD использую библиотеку U8glib v_1.18.
Для выводя на экран используется конструкция с бесконечным циклом типа "for":
Код:
for(;;) {u8g_FirstPage(&u8g);
do {page ();}
while (u8g_NextPage(&u8g));}

Весь остальной код, который должен быть зациклен, приходится вставлять в этот "for".
А выполняется он около 2 секунд при частоте MK - 8MGz. Что сильно сказывается на скорости опроса состояния кнопок и работе всей программы. Увеличив частоту до 16М стало немного побыстрее, но все равно долго.
Не могу понять - это нормальная работа по SPI с такими тягомотными циклами? Что мне теперь частоту до 32M поднимать :shock:
В общем буду благодарен за подсказки :beer: ибо чего то я явно не понимаю и главное простого...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: U8glib SPI бесконечный цикл тормозит программу
СообщениеДобавлено: Сб июл 07, 2018 05:46:42 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
while - это ведь ожидание? (вижу условие, но не вижу действия) - вот в него и вставь свой код, пусть работает пока ждет.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: U8glib SPI бесконечный цикл тормозит программу
СообщениеДобавлено: Пн июл 09, 2018 11:39:21 
Встал на лапы

Зарегистрирован: Чт дек 07, 2017 13:48:44
Сообщений: 142
Рейтинг сообщения: 0
while - это ведь ожидание? (вижу условие, но не вижу действия) - вот в него и вставь свой код, пусть работает пока ждет.


Так и делаю, но две секунды пауза в работе программы - это овермного. При нажатии на кнопки идут пропуски. Нужно по нескольку раз нажимать.

Короче, проблема была в использовании так называемого SoftWare SPI:
Код:
u8g_InitSPI(&u8g, &u8g_dev_ssd1306_128x64_sw_spi, PN(1, 5), PN(1, 3), PN(1, 2), PN(1, 1), U8G_PIN_NONE);

Применение HardWare SPI проблему решило в корне. Теперь весь цикл выполняется за миллисекунды.
Код:
u8g_InitSPI(&u8g, &u8g_dev_ssd1306_128x64_hw_spi, PN(1, 5), PN(1, 3), PN(1, 2), PN(1, 1), U8G_PIN_NONE);

Не знаю почему использование софтового SPI и переназначение портов отжирает так много ресурсов и времени в этой библиотеке. :(


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y