Например TDA7294

Форум РадиоКот • Просмотр темы - stm32f4 cmsis delay как сделать задержку для lcd
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт апр 19, 2024 00:00:03

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


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



Начать новую тему Ответить на тему  [ Сообщений: 23 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis delay как сделать задержку для lcd
СообщениеДобавлено: Чт апр 15, 2021 23:15:43 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
Цитата:
а как сделать задержку таймером базовым?

Элементарно. Вот так можно сделать паузу примерно на SCREEN_PAUSE миллисекунд в конечном автомате:
Код:
case SCREEN_WAIT: // wait
            if(Tms - Tscr_last > SCREEN_PAUSE){
                //USB_send("Pause ends\n");
                ScrnState = SCREEN_UPDATENXT;
            }

А переменная Tms глобальная:
Код:
volatile uint32_t Tms = 0;
void sys_tick_handler(void){
    ++Tms;
}


И вообще, блокирующие паузы нельзя делать нигде, кроме инициализации. Особенно если эти паузы больше, чем на пару-тройку тактов ядра! А уж блокирующие паузы по полсекунды, как тупые абдуринщики делают, так вообще нонсенс!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis delay как сделать задержку для lcd
СообщениеДобавлено: Сб апр 17, 2021 00:55:45 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Уже задержку в 3 такта ядра делают на КА, которые отожрут на порядок (а то и не один) больше времени.
Веселуха ... :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis delay как сделать задержку для lcd
СообщениеДобавлено: Сб апр 17, 2021 03:24:25 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
LCD какой? О каких задержках идёт речь? мкс, мс? Я с AVR работаю, потому приведу пример, как я делаю на них. К примеру, берём символьный дисплей. Самые большие задержки это после включения питания перед инициализацией дисплея. Кажется, 40 мс. И после команды Clear_display нужно выдержать 20 мс. Все остальное идёт в мкс. Также определённая задержка должна быть после каждой отправки команды или данных.
У меня реализовано так. Флаг готовности я не проверяю. То есть, дисплей работает только на запись. Пусть дисплей 20х4. Создаётся буфер 80 байтов. Алгоритм функции работы с дисплеем у меня сделан на конечном автомате. Сначала задержка 40 мс, инициализация дисплея. Затем, в зависимости от состояния автомата, каждую миллисекунду отправляется либо по индексу счётчика строки считывается адрес начала строки, либо отправляются данные из буфера строки. Задержки для работы с дисплеем на мкс сделаны тупо на nop-ах. АРМ пошустрее работают, так что делайте простые задержки. Типа delay_us.


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

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

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

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


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

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


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

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


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