Перейти к содержанию
    

EdgeAligned

Участник
  • Постов

    1 064
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

EdgeAligned стал победителем дня 4 октября 2023

EdgeAligned имел наиболее популярный контент!

Репутация

53 Очень хороший

Информация о EdgeAligned

  • Звание
    Профессионал
    Профессионал

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Правильно - кварц - механический прибор, вибрирующая мелко-пластинка. Поэтому, такие платы в общем случае не рекомендуют мыть в УЗ. Для этого есть руки кодописателя.
  2. Чтобы понять, как поступить, надо разобраться, что будет происходить. Допустим, задача А читает данные, задача В записывает данные в общую область. Переключение задач А и В может произойти в любое время, в том числе и до окончания операций записи или чтения этими задачами. А значит, следует запретить запись/чтение другой задачей, пока задача, начавшая эти операции, не завершит их. Вспоминаем, какой инструмент из API RTOS обладает таким функционалом. Это - мьютекс. Mutually Exclusive - взаимное исключение. Намек понятен? 🙂 Ассоциация с ключом от туалета - захотел в туалет, взял ключ на вахте, попал в "комнатку". Другой чел не сможет уже попасть в нее, пока ты не вернул ключ на вахту после "большого/малого дела". Возвращаешь ключ - другой берет его и идет в туалет. А ты, если тебе вдруг надо вернуться, теперь будешь ждать. Тут всё понятно? Ключ - мьютекс - он один. Желающих взять ключ - сколько угодно, но в "кабинку" зайдет только тот, кто взял ключ.
  3. Тут показано, как это работает. Включаем генерацию DMA-запросов на передачу и прерывание по TCIF (выполнение передачи) у DMA, запускаем TX UART, DMA передает заданное число байтов в модуль UART, срабатывает прерывание в DMA, в этом прерывании включаем TCIE в UARTe (можно и сразу при запуске), и ожидаем его. Это прерывание будет означать завершение передачи заданного числа байтов по UART.
  4. Так ведь перед инициализацией RTV следует проверить, запущены ли они или нет, читая состояние бита RTCEN в RCC. Всё, что работает от домена Backup, оно не сбрасывается при всех видах сброса микроконтроллера, при условии питания этого домена от "часовой" батарейки. Вообще, регистры и биты управления этим доменом защищены от перезаписи, и нужно дополнительно сбрасывать эту защиту.
  5. Ну если вы косячно напишите, то конечно "сбойнет" 🙂 Ну и учитывая, что I2C очень медленный интерфейс, ожидание прихода байта поллингом - очень нерациональное решение. Есть же для этого прерывания, DMA в конце концов. Никаких сложностей, надо просто понимать, как что делать рационально. Конечно, если понимания этого нет, тогда FreeRTOS услужливо подставляет костыль для обхода сей некомпетентности кодописателя. "Удобно-неудобно"... Неудобно срать спать стоя, остальное фигня, как у нас говорили 🙂 Во многих случаях FreeRTOS - всего лишь маркетинг, предложенный как "удобно". На самом деле, если разобраться, в ней хватает "неудобных" моментов даже более чем. Ох мать, еще одна надстройка... Дааа, Куб услужливо подставил еще один костыль для не слишком смышлёных тушканчиков 🙂
  6. А самое смешное, что задача с УАРТом, И2Ц, АЦП и таймером решается без каких-либо РТОС 🙂 По крайней мере, мы раньше на такие темы даже и не заморачивались. Это вот сейчас стало модно крутить РТОС даже в светомигалку. Использование ДМА и прерываний, вкупе с системным таймером позволит устаканить указанные четыре вещи без РТОС как за нефик делать. Перечисленные модули все равно же будут работать примерно поочередно, типа пока не будет готов результат АЦП, УАРТ не будет начинать передачу. И наоборот, пока по УАРТу не придет команда запуска АЦП, он не будет запускать процесс измерения. И2С - это наверно какой-нить OLED 128х64. В лучшем случае 🙂 Ну это так, для справки, примерно плюс-минус както так.
  7. Почему же не совместимы, если CubeIDE в своей поставке напрямую интегрирует FreeRTOS. Блокировка ресурсов достигается ручками программиста, для этого есть возвращаемое значение состояния HAL - HAL_OK, HAL_BUSY, ну и средства FreeRTOS. Вы не ленитесь читать мануалы, на HAL он тоже есть, да и на FreeRTOS тоже. Отличие LL от HAL - непринципиальное, это разновидность реализации низкоуровневого драйвера.
  8. Даааа, жээээсть 🙂 Чето тут походу ИИ слова составлял - слова есть, смысла нету.
  9. Иль просто на тех занятиях не были... Ладно, х. с ним. Там всё просто. Подаете на аналоговый вход микроконтроллера напряжение с резистивного делителя, в котором внизу стоит фоторезистор. Оный будет изменять свое сопротивление от освещения, а значит, будет изменяться напряжение на входе микроконтроллера, его то и нужно будет измерить АЦП-шкой. Акей. На выходе микроконтроллерс должен формироваться сигнал ШИМ-типа, который подается на микросхему драйвера светодиодов, например HV9910, на ее вход PWM. Схему подключения этого драйвера можно срисовать прямо с даташита или найти в инете. Таймер вкл/выкл реализуется программно на микроконтроллере. Надеюсь, программировать умеете. Если нет, то так преподу и объясните - не умею, не научился.
  10. Ну дак я ж не буду за нерадивого студиоуса диплом/курсовик делать. Пусть сам пыхтит или в армию идет. Тем более что основная фича этого задания ее в силовой части (она стандартная и перерисовывается с даташита), а именно управляющая часть, формирующая заданный сигнал
  11. Силовой частью тут можно пренебречь, главное задание - получить управляющий сигнал для некоего условного драйвера. Управляющий сигнал в виде логических 0/1. Это как в школьной задачке по физике: "через блок перекинут канат, <...> , весом каната пренебречь".
  12. У меня базовое образование иное, строительное. Диплом был - проектирование жилого многоквартирного дома на 12 этажей. Курсовики - расчет фундамента, инженерных коммуникаций, и прочей лабуды. Это было ровно 20 лет назад.
  13. Мы шпрошивали через утилиту ST Flash Loader Demonstrator, подключив через USB-UART переходник
  14. Таймер вкл/выкл из Леруа-Мерлена обозначается квадратиком и прописывается в спецификации как "покупные изделия".
  15. Зачем ЖК индикатор? Вон всякие "умные калонки" обходятся вообще без индикаторов, один белый или синий сведик и кнопка вкл/выкл. И микроконтроллер тоже не нужен. Вон, таймер вкл/выкл в Леруа-Мерлене или на Озоне купить. На Алиэкспрессе купить регулятор яркости и вместо крутилки припоять фоторезистор. Отнести преподу, пусть порадуется результатами обучения. Между прочим, глупость студиоусов - это камень в огород и преподов тоже.
×
×
  • Создать...