Jump to content

    

technik-1017

Участник
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Обычный

Контакты

  • Сайт
    Array
  1. Добрый день, впервые начал проект в котором активно используются потоки и наткнулся на один не очень приятный момент, например: Существует главный поток (GUI) и созданный поток. Связь между потоками осуществляется с помощью сигналов и слотов. Так вот, когда основной поток (GUI) принимает данные из потока и отображает их, наводим курсор мышки на какой-нибудь виждет с установленной для него подсказкой (setToolTip), основной поток останавливает обновление GUI и активно начинает выводить подсказку. После вывода подсказки продолжает обновление GUI (при этом поток продолжал работать и данные далее отображаются корректно). Данный эффект замечен не только с подсказкой, но и при наведение на элементы меню. Данный эффект сильно проявляется в версии Qt 5.14.2 для Windows (в которой я и начал делать свой проект). В версии 5.12.10 для Windows проявляется в значительно меньшей степени. В Linux данный эффект не проявляется в обоих версиях. Также для нормализации работы потоков в версии 5.14.2 требуется чаще использовать QCoreApplication::processEvents(). Видимо какие-то проблемы с обработкой очереди событий. Я взял пример из книги Шлее Qt 5.10 и слегка модифицировал, чтобы было видно данный эффект (см.вложение). Эффект хорошо виден в версии 5.14.2, в версии 5.12.10 виден только один раз при первом появлении подсказки. Т.е. проблема оказалась не в моём коде. Может кто сталкивался с подобным? Как можно это обойти? Какая версия Qt наиболее стабильная на сегодняшний день? ThreadTimer.zip
  2. Выдернул из одного проекта (может надо что почистить), но вроде работает
  3. оптимизацию компилятора не учитываем в первом случае будет создана функция, где регистр будет задан как "константа" (новый регистр - новая функция), а значение передаётся как параметр функции, т.е. на ассемблере будет производиться запись в регистр (вывода) из другого регистра (выводимое значение) LD R2,55 LD R1,R2 во втором случае и регистр и значение будут "константами", т.е. на ассемблере будет записываться конкретное число в конкретный регистр LD R1,55 возможно данный код служил для дополнительной оптимизации
  4. если я не ошибаюсь, то каналы ШИМ в mega48 имеют разную разрядность, одни построены на 8-битном таймере, другие на 16-битном, вы же определяере все OCR как 8-битные
  5. OCR это не РЕГИСТРЫ сравнения, а ПОРТЫ, вы пытаетесь обратиться к портам по указателю? Или какая цель этого кода? Что вы хотите получить? Наверно необходимо преобразование типа OCR до типа определения портов, чтобы компилятор понял, что это не адресное пространство RAM почитайте здесь (2. Передача порта через указатель) http://easyelectronics.ru/rabota-s-portami...erov-na-si.html
  6. inline нужен, например, для функций в прерываниях, чтобы не допускать разрастания стека (о скорости выполнения уже говорили). использование inline ещё не говорит о том, что функция будет сто процентов инлайниться. Для принудительного инланинга необходимо использования директиву #pragma inline = forced
  7. IAR 8.10

    в проводнике windows установите
  8. IAR 8.10

    попробуйте так
  9. Добрый день, предлагаю свой вариант конвертера текста для индикатора на контроллере HD44780 (CP1251 -> HD44780). Преобразование производится на уровне компиляции и строится на использовании макроса LCD_TEXT_XX (файл lcd_conv.h). Данный макрос может быть использован с любым компилятором языка Си. Во вложении файл lcd_conv.h и описание. lcd_conv.zip
  10. Рынок металлодетекторов можете рассмотреть (различные рамки, пищевое производство...). Используют ПЛИС для снижения времени реакции.
  11. Cronyx использует ПЛИС, например, http://cronyx.ru/hardware/taupci-xe1.html
  12. Как альтернативу STM32 рассматриваю чипы SmartFusion2 от Microsemi (https://actel.ru/item/smartfusion2). Кто-нибудь использует, поделитесь впечатлениями. Младший, m2s005, как мне кажется, может закрыть достаточно большую нишу разрабатываемых устройств.
  13. Посмотрите Actel - указано 500 раз (и более в зависимости от количества лет хранения информации). Выполнены по flash технологии (не требует внешней конфигурационной памяти). Есть версии со встроенным аппаратным Cortex-M1 (или M3). https://actel.ru/rubric/plis-8. Немного дороже остальных. Цены можно посмотреть на www.chipdip.ru