Например TDA7294

Форум РадиоКот • Просмотр темы - Микроконтроллеры STM32 - тонкости работы, отладочные платы
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс апр 28, 2024 16:30:56

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


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



Начать новую тему Ответить на тему  [ Сообщений: 152 ]     ... , , , , 8
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 12:46:50 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
но я не уверен, что такая погоня за универсальностью (и удобством для человека) будет более оптимальным решением.
Поверьте, компилятор лучше программиста знает как по массиву ходить. Впрочем, это легко проверяется. Ссылка на Compiler Explorer.
Пишем алгоритм обхода массива двумя способами.
СпойлерИзображение
Вложение:
изображение_2024-03-09_123816329.png [37.58 KiB]
Скачиваний: 52

И видим, что начхал компилятор на счётчик цикла и сгенерировал одинаковый бит в бит код для обоих вариантов.
СпойлерИзображение
Вложение:
изображение_2024-03-09_124234554.png [48.95 KiB]
Скачиваний: 45


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 13:45:34 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 22
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 104
Рейтинг сообщения: 0
но я не уверен, что такая погоня за универсальностью (и удобством для человека) будет более оптимальным решением.
Поверьте, компилятор лучше программиста знает как по массиву ходить. Впрочем, это легко проверяется.

Это хорошо, что x86/x64 компилеры последние 25 лет не стояли на месте. Но что там под РУКУ? Топик же не про x86/x64. Что там с тулчейнами под РУКУ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 13:58:46 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
x86 выбран только чтобы показать результат выполнения кода в Compiler Explorer. Для ARM компиляторы ни разу не отстают.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 15:14:39 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 149
Откуда: Самара
Рейтинг сообщения: 0
Добрый день! Это больше похоже на плюсы, сейчас попробую разобратся, совсем сложно пока для меня, но я стараюсь)
У меня все работает, кроме цветов. Вот фон один и тот же сзади 411 на дисплей выводит доски а с переди 476 кляксы вывел какие то. И что интересно вообще не понятно почему так может быть. Дисплеи одного класса(((Изображение

У меня белый это черный, черный это белый а красный синий ппц(((

В дисплее включал инверсию - не то(
Скорее всего дело в передаче выходит
Код:
void Send_DAT16(uint16_t dat){
        CS_LOY;  //ChipSelect loy
   DC_H;  //DC H      
   SPI1->CR1 |= SPI_CR1_CRCL;
   while (!(SPI1->SR & SPI_SR_TXE)){};
   SPI1->DR = dat;
   while (!(SPI1->SR & SPI_SR_TXE)){};
   while ((SPI1->SR & SPI_SR_BSY)){};
         CS_H;//ChipSelect Up
}


Я попробовал по анологии но не помогло)
Код:
*((__IO uint16_t *)&SPI1->DR) = dat;

а так похожи цвета, но все равно где то близко
Код:
void Send_DAT16(uint16_t dat){
 uint8_t  bytes[2];
bytes[0] = dat >> 8;     // high byte (0x12)
bytes[1] = dat & 0x00FF; // low byte (0x34)
Send_DAT(bytes[0]);
Send_DAT(bytes[1]);
}


Пробовал цвет разбирать на ргб и менять местами, лажа какая то(((


Методом научного тыка добилсяя того что INVON + BGR режимы дисплея плюс перестановка битов при отправке дают нужные цвета


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 18:00:57 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 1
TEPEM, не знаю надо ли это для вашего индикатора, но если нужно переставить местами два байта в uint16_t, то в Cortecx-M4 можно вот так сделать.
Код:
SPI1->DR = __REV16(dat);
Это одна ассемблерная команда.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 19:02:31 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 22
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 104
Рейтинг сообщения: 0
TEPEM, не знаю надо ли это для вашего индикатора, но если нужно переставить местами два байта в uint16_t, то в Cortecx-M4 можно вот так сделать.
Код:
SPI1->DR = __REV16(dat);
Это одна ассемблерная команда.

Это несколько ассемблерных команд. Следует уточнять, что это именно своп байтов в каждом полуслове REV16 - одна атомарная команда. /душнила: офф


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 19:13:17 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Это несколько ассемблерных команд.
Это одна команда, меняющая местами байты.
Изображение
Вложение:
изображение_2024-03-09_191108502.png [13.56 KiB]
Скачиваний: 242

Следует уточнять, что это именно своп байтов в каждом полуслове REV16 - одна атомарная команда.
Применительно к записи в SPI->DR это не имеет значения, он 16-битный. Поэтому, одной ассемблерной командой достигается задача перестановки двух байт, которая, похоже, нужна для правильного задания цвета.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб мар 09, 2024 20:07:14 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 22
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 104
Рейтинг сообщения: 0
Это несколько ассемблерных команд.
Это одна команда, меняющая местами байты.
Изображение
Вложение:
изображение_2024-03-09_191108502.png

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

Следует уточнять, что это именно своп байтов в каждом полуслове REV16 - одна атомарная команда.
Применительно к записи в SPI->DR это не имеет значения, он 16-битный. Поэтому, одной ассемблерной командой достигается задача перестановки двух байт, которая, похоже, нужна для правильного задания цвета.

Ну написано следующее:
Код:
SPI1->DR = __REV16(dat);

И написано буквально "это одна команда". Поэтому я и задушнил, чтобы новичку было понятно: одна команда это та самая __REV16(), которая свопает 2 байта в слове. Ну и касаемо темы - предположение может быть верным, что endianess у LCD другая. Либо человек не разобрался с букварём на LCD, где описаны режимы и форматы упаковки данных в изображении.

Ещё раз: я не спорю про команду, я просто оставил уточняющую ремарку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Вс мар 10, 2024 19:56:16 
Встал на лапы
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 149
Откуда: Самара
Рейтинг сообщения: 0
Добрый вечер господа.
Я очень пытаюсь разобрать код предложенный уважаемым Владиславом)
Можно я по порядку поспрашиваю где с гуглом у меня ее получается понять.
Вот цикл фор с таким условием
Код:
for(auto &x : InitAtray)

Авто это просто слсоб взять указатель без создания перемнной? А InitArray это что? А какое условие у цикла этого? Какую роль тут выполняет двоеточие? Это точно си?)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Вс мар 10, 2024 20:38:28 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Вот цикл фор с таким условием

Вот в этом сообщении этот цикл написан на обычном С.

Авто это просто слсоб взять указатель без создания перемнной?
Нет, auto это указание компилятору самому определить тип переменной x. У него для этого есть вся информация - тип элемента массива InitArray. Единственное, я ему подсказал с помощью &, что пусть лучше x будет ссылкой. Ссылка и указатель, если что, это разное.

А InitArray это что?
Это массив из структур TInitRec. Он определён в самом конце и содержит последовательность команд индикатору.

А какое условие у цикла этого?
Тут нет явного условия. Этот цикл на русском языке звучит так "Взять сcылку последовательно на все элементы массива". В теле цикла описано что с каждым элементом через эту ссылку сделать.

Какую роль тут выполняет двоеточие?
Это синтаксис оператора цикла такой.

Это точно си?)
Это точно не С :) Но, насколько я помню, вы в IAR лабаете, а там С++ по умолчанию включен. Можно всё то же самое на обычном С написать, но блин, это будет так пошло с макросами, фу...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт мар 22, 2024 21:36:29 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Сообщений: 2029
Откуда: г. Тула
Рейтинг сообщения: 0
Это C++ стандарта x11 и младше. Там есть такие формы циклов и много другого, чего нужно серьёзно изучать. InitAtray - это экземпляр контейнера (std::initializer_list, std::vector, std::list или вообще самописный), от которого можно взять итератор по методу begin() или вовсе какой-либо массив. Двоеточие - просто синтаксис. Здесь цикл последовательно шагает по каждому элементу контейнера от begin() до end() и берёт на каждом шаге его ссылку в x, которая существует только в теле цикла. auto - автоматический вывод типа элемента. Этот цикл эквивалентен С++98 коду, например, так:
Код:
CONTAINER::iterator it = InitAtray.begin();
while (it != InitAtray.end()) {
  TYPE &x = *(it++);

  /*
   cделать что-то с x
  */
}


VladislavS, ах да, ты-ж уже объяснил. Ну может будет не лишним. :)

_________________
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт мар 22, 2024 23:19:58 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Только InitAtray это обычный массив.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 152 ]     ... , , , , 8

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


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

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


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

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


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