Jump to content

Видеокурс по STM8


Recommended Posts

Запускаем новый видеокурс по микроконтроллерам семейства STM8. Курс планируем сделать интересным и интерактивным. Будут различные задания для проверки ваших знаний. От вас хотим услышать обратную связь и активное обсуждение, а также ждем любых вопросов!

Ведет курс Василий (Профиль на сайте cxem.net для доната: i80186)

Урок #1:

Рассмотрены основные особенности микроконтроллеров серии STM8 серии STMicroelectronics. Проведено сравнение их с микроконтроллерами фирм Atmel и Microchip. Так же уделено внимание средствам разработки и отладки для данных микроконтроллеров, требующимся для начала работы с ними, а именно среде IAR EMBEDDED WORKBENCH для STM8 и отладочному набору на базе микроконтроллера STM8S105 - STM8S-DISCOVERY.

Link to comment
Share on other sites

В первом уроке были проблемы со звуком, во втором постарались исправить этот недочет

Рассмотрены основы работы со средой разработки IAR для микроконтроллеров STM8. Описана установка среды, создание проекта в ней, рассмотрены основные инструменты отладки.

Среда IAR

STM8 Lesson-2.zip

Link to comment
Share on other sites

Урок #3:

Подключение STM8S-DISCOVERY. Разбор работы портов ввода-вывода. Простейшая программа.

Он-лайн тест

Урок #4:

Разбор работы модуля тактирования и таймер TIM4. Пример программы.

Он-лайн тест

Урок #5:

Практика 1. Измерение расстояния УЗ датчиком HC-SR04. Датчик парковки

lesson3.rar

lesson4.rar

lesson5.rar

Link to comment
Share on other sites

Приглашаем на вебинар «Необычное в обычном. Сравнительный анализ современных решений Recom» (27.01.2022)

Приглашаем 27/01/2022 всех желающих посетить вебинар, посвященный двум наиболее растущим сегментам интегрированных источников питания – AC/DC малой мощности (1-20Вт) и сегменту решений PoL без изоляции. На вебинаре рассмотрим проблему выбора AC/DC в бюджетном сегменте и концепцию тестирования ускоренного старения, проведем сравнительный анализ подходов к интеграции AC/DC модулей. Сделаем обзор решений концепции POL с доисторических времен до современных технологий и средств для разработки и тестирования.

Подробнее

Спасибо за курс!

А можете сделать уроки для тех кто работал с Ардуино и знает Си. Но не работал с полноценной Атмегой, Пиком, СТМом и тд

Многие вещи не очень ясны.

- Если есть настроение, хоть как то расскажите о регистрах более подробно.

- А так же о том, как тут работают прерывания.

- Некоторые команды не ясны. #pragma, TIM4_OVR_UIF_vector, pragma vector=TIM4_OVR_UIF_vector

- Если не лень, пожалуйста комментируйте код более подробно.

- __enable_interrupt(); что это за функция?

Edited by IDis
Link to comment
Share on other sites

Решения Infineon для беспроводного электроинструмента с бесщеточными электродвигателями

Современные строительные электроинструменты достигают высокой производительности и эргономичности благодаря использованию мощных бесщеточных электродвигателей и литий-ионных аккумуляторов. Для реализации сложных алгоритмов питания таких двигателей и управления ими компания Infineon предлагает решения, позволяющие создавать оборудование, отвечающее самым современным требованиям, предъявляемым к технике подобного класса.

Подробнее

Настроение есть. Уроков будет много. Они задуманы, как последовательный рассказ о настройках периферийных узлов процессора, применительно к созданию некого электронного устройства.

#pragma - это команда для компилятора. В в данном контексте она задаёт адрес вектора прерывания TIM4 для функции обработки прерывания по переполнению таймера.

__enable_interrupt(); - это стандартная для С функция. Находится в стандартной библиотеке intrinsics.h. Разрешает глобальное прерывание.

Link to comment
Share on other sites

Стандарт LoRaWAN и его использование в России с контроллерами STM32WL

Стандарт сетевого уровня LoRaWAN технологии LoRa одобрен для применения в России и отвечает требованиям региональных сетевых операторов. Компания STMicroelectronics выпустила линейку беспроводных однокристальных контроллеров серии STM32WL c поддержкой модуляции LoRa. Серия STM32WL имеет цифровые и аналоговые периферийные устройства для приложений, требующих высокой энергоэффективности и возможностей связи на достаточно большие расстояния, подходя для широкого спектра промышленных и потребительских приложений.

Подробнее

какой смысл в STM8, когда есть STM32F030 мне кто нибудь здесь сможет толково обьяснить? Может я чего не знаю?

видеокурс по очередному тупику эволюции МК

Работать ради работы конечно можно. Героически снимать видео и тешить ЧСВ. Но пользы от этого будет мало. Кого то это введет в заблуждение, а ктото просто плюнет на эти модные STM-ки и будет продолжать грызть меги и пики. Не в обиду. Чисто мнение со стороны

Все что говорится в первом ролике было бы актуально лет 5-7 назад и то с натяжкой на фоне AVR, но не сегодня. Стартовый набор для 32-ой стоит 5 долларов. Это уже коммерческая цена. Компилятор бесплатный, поддерживает полностью С++

Я сравнивал 8-ку и 32 так и сяк и пришел к выводу что по стоимости они в одной нише, это раз. Корпусировка доступна та же, если надо. Инструменты разработчика для 32 наааамного круче. Ресурсов самого камня (не знаю как точно сравнить, но все равно скажу так) - на порядок больше. И самое главное - 32 проще 8-ки, такой вот парадокс. Последний гвоздь в крышку гроба - разрядность. Ну вы понимаете о чем я

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Link to comment
Share on other sites

Разработка преобразователей на основе карбид-кремниевых приборов с помощью симулятора SpeedFit 2.0

Компания Wolfspeed разработала бесплатный онлайн симулятор SpeedFit 2.0, позволяющий разработчикам быстро и всесторонне оценить параметры основных процессов, происходящих в силовой части импульсных преобразователей электрической энергии, и сравнить между собой различные варианты реализации поставленного технического задания.

Подробнее

какой смысл в STM8, когда есть STM32F030 мне кто нибудь здесь сможет толково обьяснить? Может я чего не знаю?

видеокурс по очередному тупику эволюции МК

Работать ради работы конечно можно. Героически снимать видео и тешить ЧСВ. Но пользы от этого будет мало. Кого то это введет в заблуждение, а ктото просто плюнет на эти модные STM-ки и будет продолжать грызть меги и пики. Не в обиду. Чисто мнение со стороны

Все что говорится в первом ролике было бы актуально лет 5-7 назад и то с натяжкой на фоне AVR, но не сегодня. Стартовый набор для 32-ой стоит 5 долларов. Это уже коммерческая цена. Компилятор бесплатный, поддерживает полностью С++

Я сравнивал 8-ку и 32 так и сяк и пришел к выводу что по стоимости они в одной нише, это раз. Корпусировка доступна та же, если надо. Инструменты разработчика для 32 наааамного круче. Ресурсов самого камня (не знаю как точно сравнить, но все равно скажу так) - на порядок больше. И самое главное - 32 проще 8-ки, такой вот парадокс. Последний гвоздь в крышку гроба - разрядность. Ну вы понимаете о чем я

А если я с TI начну сравнивать... Это ОБУЧАЮЩИЕ видео, тут обучают.

Link to comment
Share on other sites

Это ОБУЧАЮЩИЕ видео, тут обучают.

уже есть прекрасный (я считаю) видеокурс по авр-кам. Чем ваша обучалка конкретно лучше той? Если провести по итогу дифанализ, то отличия будут только в описании отдельных специфических блоков, которых не так уж и много. Принципиально 8-битки мало чем друг от друга отрываются. Все примерно на одной линии. Разве что конечно АВР дороже как по корпусам, так и по стоимости оборудования для толковой работы в режиме отладки в железе.

Прошло время, появились STM8. Намного позже, но с похожим возом проблем. Появились по всей видимости чтобы заткнуть дырку в бюджете ST. Стало понятно что в таком виде конкурировать с атмелом они не смогут, слишком много проблем и мало аргументов в пользу перехода на 8-ки. Сделали ставку на лицензированное ядро Cortex и полную переработку архитектуры. В итоге появились STM32. Причем в широчайшей линейке, перекрывающей в том числе и нишу STM8 как по возможностям, так и по цене, но с несравнимо более дешевым и экономичным циклом разработки от идеи до готового решения.

Вот это вот можно еще сравнивать. Лепить сюда TI было весьма непрофессионально с вашей стороны. Это совсем иная ниша и другие деньги.

Что я могу сказать еще в качестве аргументов за 32-ю серию против 8-ой

1. Компилятор бесплатный и очень крутой. Отсылать за кряком на торренты в видео было не очень красиво. Ресурс то публичный

2. Среда разработки далеко не убогий IAR

3. Есть мощнейшее средство администрирования ресурсов и автокодинга. Сокращает затраты на пустой код иниток раз в 20 по времени

4. Есть операционная система реального времени. Еще сокращает расходы на кодинг раз в 10. Помигать светодиодом? 5 минут ровно. Можно на скорость сделать за 2, при этом 99,99999% времени ядра будут свободны для других задач. При этом ни один таймер не будет задействован.

5. Производительность. Простейший камень за доллар работает на частоте 72 мегагерца на 32 разрядах. Ваши 16 мегагерц? Я улыбаюсь

6. DIP40 для домашнего использования. Не вопрос

7. Программатор-отладчик - 2 бакса

8. ЦАП/АЦП 12 разрядов. 10 уже давно мало для многих даже простых задачек

Лично обучил несколько студентов от полного нуля до состояния - дядя, отойди я дальше сам за неделю.

STM8 - тупик к сожалению. Разрабатывать что-то новое на нем смысла никакого нет

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Link to comment
Share on other sites

mail_robot, вы не правы, разводя срач не по существу. Полезное оно или нет пусть разбираются те, кому эта тема интересна. Я вообще считаю все подобные обучающие видео бесполезными (текстовый материал удобнее), но если кому-то помогает - да на здоровье. Я уверен, если смотреть никто не будет это демотивирует лучше.

Посмотреть само видео не получается, так что по существу оценить не могу - дается ли там нормальная теория или только набор шаманских ритуалов.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Link to comment
Share on other sites

первый ролик вообще в принципе можно и не смотреть, там бла бла про то какие замечательные камни 8-ки и про планы на курс

второе видео как устанавливать иар и куда там тыкать. Просто видео про иар

я вот тоже согласен с тем, что текстовый вариант обучалки эффективнее. Можно быстро пропустить ту часть материала которая не интересна, просто бегло по тексту. Выбрать рубрику которая нужна и ее проштудировать. В текст можно вставить ссылки на сопутствующие материалы, если нужно. Листинги примеров с текста тоже лучше воспринимаются.

человек занялся, пусть делает

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Link to comment
Share on other sites

а когда будет третий урок ?

Скоро будет. Выздороветь выздоровел. Клавиатуру отбитую нашёл, моя сдохла. STM8S-DISCOVERY приехало. Будут порты ввода вывода, самый простой таймер. "хеллоу Ворлд!" с миганием свеетодиодиком.
Link to comment
Share on other sites

Будут порты ввода вывода, самый простой таймер. "хеллоу Ворлд!" с миганием свеетодиодиком.

Если не сложно то подробней код комментируйте и по возможности дайте понять логику что и почему так называется.

Например PD_DDR_bit.DDR7 почему именно такие названия даны. Или что это? PD_CR1_bit.C17 Без понятия логики, придется зубрить, а зубрешка надолго в голове не останется

Edited by IDis
Link to comment
Share on other sites

Будут порты ввода вывода, самый простой таймер. "хеллоу Ворлд!" с миганием свеетодиодиком.

Если не сложно то подробней код комментируйте и по возможности дайте понять логику что и почему так называется.

Например PD_DDR_bit.DDR7 почему именно такие названия даны. Или что это? PD_CR1_bit.C17 Без понятия логики, придется зубрить, а зубрешка надолго в голове не останется

Это не я так называю, это так названы они в заголовочном файле. Чтоб было нагляднее откройте менюшку Регистры в режиме дебагара и посмотрите как они названы там. Ну или описание самого процессора. Это обращения к конкретным битам конкретного регистра процессора в общем. PD - port D, DDR - data derection registr, bit - обращение к биту, ну и его название. Придумали видимо разработчики процессора, на английском так попонятнее.

Link to comment
Share on other sites

  • 3 weeks later...

Надеюсь, мы тут не отбили желание продолжить делать данный курс?

Нет. Просто микрофон пришлось из Китая ждать новый. Ролик очередной уже готов. Скоро опубликовать должны.

Link to comment
Share on other sites

В третий пост добавлен третий урок.

В этот раз видеокурс у нас будет интерактивным и для третьего выпуска подготовлен он-лайн тест. После просмотра видео вы можете проверить себя как вы усвоили материал.

Link to comment
Share on other sites

Конспект к лекции 3

e2bd1af9aa1c.jpg

макс размер таблицы

IDR - входной регистр

ODR - выходной регистр

DDR - регистр направления (вход / выход)

CR1 - регистр управления

  • на выходе задет либо стандартный выход (1), либо усиленный выход(0)
  • на входе подключает подтягивающий резистор(1), либо ножка болтается и ловит помехи(0)

CR2 - регистр управления

  • на выходе: задет либо стандартную скорость 2мГц (0), либо быструю 10 мГц(1)
  • на входе: запрещает прерывания(0), или разрешает прерывания(1)

ccb8e7ea42fat.jpg

PD_DDR_bit.DDR0 = 1; // порт D0, ножка на МК 41 сконфигурирован как выход (1).
PD_CR1_bit.C10 = 1; // порт D0, ножка 41 подключен как стандартный выход (1)(не расчитан на повышенную нагрузку)
PD_CR2_bit.C20 = 1; // порт D0, ножка 41 сконфигурирован на повышенную скорость работы 10мГц(1) (иначе 2мГц)

PD - порт D (для порта С запись будет иметь следующий вид PC_DDR_bit.DDR0=1;)

DDR - данными символами показываем что хотим задать режим работы ножки, либо на вход, либо на выход.

bit - указывает что значение может быть либо 1 либо 0

DDR0 - порядковый номер порта D равен 0 (для порта C5 (ножка 30) запись будет иметь вид PC_DDR_bit.DDR5=1;)

С10 - порядковый номер порта. (для порта C5 (ножка 30) запись будет иметь следующий вид: PC_CR1_bit.C15=1;)

//Дополнительный пример конфигурации вывода на вход.

PC_DDR_bit.DDR5=0; // Порт C5 ножка на микроконтроллере 30, сконфигурирован на вход (0).
PC_CR1_bit.C15=0; // Не использовать подтягивающий резистор (0)
PC_CR2_bit.C25=0; // не использовать прерывания (0)

распиновка на плате (провод вверху)

616213bb80b2.jpg

========================================================================================================

ВОПРОСЫ ПО ЛЕКЦИИ:

- зачем нам ODR и IDR если мы тоже самое можем сделать с помощью DDR ? Что те конфигурируют вывод на вход или выход, что этот.

- все ли я правильно записал, в конспекте?

- что такое P-Buffer?

Edited by IDis
Link to comment
Share on other sites

IDR - входной регистр

ODR - выходной регистр

DDR - регистр направления (вход / выход)

CR1 - регистр управления

  • на выходе задет либо стандартный выход (1), либо усиленный выход(0)
  • на входе подключает подтягивающий резистор(1), либо ножка болтается и ловит помехи(0)

CR2 - регистр управления

  • на выходе: задет либо стандартную скорость 2мГц (0), либо быструю 10 мГц(1)
  • на входе: запрещает прерывания(0), или разрешает прерывания(1)

Не усиленный выход, а выход с мнимым открытым коллектором, т. е. верхний транзистор на структурной схеме в описании называемый P-buffer, отключён.

PD_DDR_bit.DDR0 = 1; // порт D0, ножка на МК 41 сконфигурирован как выход (1).
PD_CR1_bit.C10 = 1; // порт D0, ножка 41 подключен как стандартный выход (1)(не расчитан на повышенную нагрузку)
PD_CR2_bit.C20 = 1; // порт D0, ножка 41 сконфигурирован на повышенную скорость работы 10мГц(1) (иначе 2мГц)

PD - порт D (для порта С запись будет иметь следующий вид PC_DDR_bit.DDR0=1;)

DDR - данными символами показываем что хотим задать режим работы ножки, либо на вход, либо на выход.

bit - указывает что значение может быть либо 1 либо 0

DDR0 - порядковый номер порта D равен 0 (для порта C5 (ножка 30) запись будет иметь вид PC_DDR_bit.DDR5=1;)

С10 - порядковый номер порта. (для порта C5 (ножка 30) запись будет иметь следующий вид: PC_CR1_bit.C5=1;)

PC_DDR_bit.DDR0 - вся запись едина и неделима. Это просто перевод сокращений для данного компилятора. Возможны другие обозначения.

для порта C5 (ножка 30) запись будет иметь следующий вид: PC_CR1_bit.C5=1; Нет PC_CR1_bit.C15=1; Опечатка наверное.

//Дополнительный пример конфигурации вывода на вход.

PC_DDR_bit.DDR5=0; // Порт C5 ножка на микроконтроллере 30, сконфигурирован на вход (0).
PC_CR1_bit.C15=0; // Не использовать подтягивающий резистор (0)
PC_CR2_bit.C25=0; // не использовать прерывания (0)

========================================================================================================

ВОПРОСЫ ПО ЛЕКЦИИ:

- зачем нам ODR и IDR если мы тоже самое можем сделать с помощью DDR ? Что те конфигурируют вывод на вход или выход, что этот.

- все ли я правильно записал, в конспекте?

- что такое P-Buffer?

Регистр DDR задаёт напрявление передачи данных, сами же данные соответственно пишутся и читаются в и из регистров ODR и IDR. Т.е. конфигурирует только DDR.

P-buffer- название того самого транзистора, который необходимо отключить, дабы получить выход с открытым коллектором. Для чего они записали это его в таблицу, без понятия))

Кстати порты имеющие литеру T(PE0 и PE1) имеют реальный выход с открытым коллектором, можно повысить выходное напряжение до 6,5В путём включения режима open-drain и подключения подтягивающего резистора.

Edited by i80186
Link to comment
Share on other sites

Там ещё вот это 2/10 Мгц в таблице. Не 2/10, просто 10Мгц. Если CR2 при выводе данных 1, то 10МГц, если 0 то 2 Мгц.

Edited by i80186
Link to comment
Share on other sites

мнимый открытый коллектор

То есть, при включении мнимого открытого коллектора мы на выходе получаем ноль?

запись ниже означает: на вывод 30 (порт С5) подать ноль?

PC_DDR_bit.DDR5=1;
PC_CR1_bit.C15=0;

Есть ли разница при конфигурировании аналогово и цифрового входа/выхода? Или здесь нет АЦП и все выводы цифровые?

Edited by IDis
Link to comment
Share on other sites

мнимый открытый коллектор

То есть, при включении мнимого открытого коллектора мы на выходе получаем ноль?

запись ниже означает: на вывод 30 (порт С5) подать ноль?

PC_DDR_bit.DDR5=1;
PC_CR1_bit.C15=0;

Есть ли разница при конфигурировании аналогово и цифрового входа/выхода? Или здесь нет АЦП и все выводы цифровые?

Да, при мнимом открытом коллекторе необходимо внешний резистор на питание.

Нет, запись обозначает настроить порт на вывод. Ещё дописать нужно. PC_ODR_bit.ODR5=0;

Как я уже говорил, вывод данных в регистр ODR, а ввод из регистра IDR.

Есть АЦП, но пока оно не включено разницы никакой. А перед включением, и настройкой порта как аналогово входа, просто на ввод, без потдягивающих резисторов желательно настроить, т. е. состояние по сбросу. Но настройка на ввод просто прописана как желаемая, т. е. вроде как не обязательно, но лучше переводдить в такое состояние.

Edited by i80186
Link to comment
Share on other sites

а мнимый открытый коллектор, что в данном случаи (у stm8) что означает?

Это означает, что один из транзисторов выходного буфера отключён, и можно повесить внешний резистор к другому источнику питания, не превышающему текущие питание МК, скажем чтобы совместить по уровню с низковольтной логикой.

Edited by i80186
Link to comment
Share on other sites

хотел уточнить насчёт изменения скорости 2/10мГц.

это скорость с которой может ножка дергаться? Это зависит от внутреннего кварца? А если использовать внешний кварц, тогда как скорость регулировать?

Отправлено с моего Wileyfox Swift через Tapatalk

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

  • Сообщения

    • А там и не надо убирать 1 Вольт, погасить надо всего 0,2-0,3В. Дело в том, что когда выпрямляешь единицы Вольт переменки мостом на кремниевых диодах, то множитель х1,3...1,4 не работает. В моём случае до моста было ~6,2В  , после моста под нагрузкой получалось 5,3В. Предполагаю, что на мосту из Д302-304 просядет меньше. Кстати, ток накала у Светлановских 300В-ЕН был 1,2А одинаковый у четырёх экземпляров. может так разглядите, что в схеме к накалу подведена постоянка 5,3 Вольта, а никакие не 6,3.
    • Отнести к починяльщикам в починку. Вам лично в этой шарманке делать точно нечего.
    • На меандр 20кГц глянуть бы, пила небось вместо меандра.
    • Смешно, а эти платы из чего сделаны? Как раз для космоса и войны? Просьба к модератору почистить ветку от лишнего.
    • Где ж по нулям? Там 8,05...   Замечательные "измерения". Читайте в сети про измерения ПП,а прибор отнесите в ремонт.
    • Подскажу. С помощью приборов и знаний определить сломавшуюся деталь и заменить её. Всё.
    • Поверьте мне, я чего-то не знаю. Но то что я знаю, я хорошо понимаю. Я просто работаю над нетривиальной задачей, поэтому многим читающим это все кажется бредом. У меня провод алюминиевый, но в данном случае это не имеет значения. Объясняю, и в явном виде вы вряд-ли это найдете в любой книге. Когда надо посчитать собственную частоту планируемой антенны (полуволнового диполя), которую мы собираемся строить, мы должны выяснить погонные L и C. Если антенна состоит просто из натянутой проволоки, то мы должны посчитать екость длинного еудиненного проводника, точно так же с индуктивностью. Мы помним, что емкость пропорциональны заряду, а заряд потенциалу, т.к. в полуволновом (однородном) диполе потенциал имеет форму синусоиды по длине, мы должны привести эту синусоиду к прямой, если коротко, умножить C на коэффициент, он равен 0,636 его легко вывести. Точно так же с током, индуктивность тоже приводим. Если на самом конце диполя есть добавочная емкость, например шар или пластина, их емкость добавляем к ранее полученной без коэффициента. С сосредоточенной индуктивностью в центре диполя так же.Полученные данные подставляем в обычную формулу Томсона (она простая, но фундаментальная) и получаем собственную резонансную частоту. Я построил несколько диполей и каждый раз фактическая частота отличалась на 3-4% от расчетной, не более. Так вот я спрашивал на счет омического сопротивления антенны, т.к. ток не однороден, надо ли и его приводить для расчета входного импеданса антенны. п.с. диполи в виде спирали с не слишком большим шагом считаются так же, межвитковая емкость полуволновой дипольной антенны ничтожна, про нее можно вообще забыть.
  • Similar Content

    • By VIP-DIP
      Нужны библиотеки языка "C"-"C++" для "ЦОС" (цифровой обработки сигналов или DSP). Подойдут любые доступные в интернете (как пропатченные платные, так и бесплатные). Так-как в широких пределах "ЦОС" применяется не только для аудио, уточню, что я ищу именно специализированные по аудио сигналам. Ознакомился с "MPLAB Harmony" и не обнаружил в нем искомых фильтров. Действительно ли их там нету? Ищу, например: декодер из стерео в многоканальный звук 7.1, виртуальное позиционирование динамика, временная задержка, вращение фазы, фазовый эквалайзер, фазовая инверсия.  
      1. Какие для этого есть фреймворки, SDK, отдельные библиотеки?
      В библиотеке "Advanced Audio Coding" (AAC) есть некоторые обработчики для многоканального звука. Но нашел только платную версию.
      2. Где бы взять AAC бесплатную или пропатченную платную?
      Пришел к тому, что для многоканального декодирования имеется только AAC, а для остальных обработок вообще невозможно ничего найти. Как всегда бывает, наверное, я не правильно искал и мне неизвестны оригинальные наименования этих фильтров.
      Работал в C++ на начальном уровне под виндовс. ЦОС до этого не программировал. 
    • By n_angelo
      По приходящему на ножку A1 импульсу настроено прерывание. Прерывание должно отработать один раз и должно делать следующее: пауза 7 секунд, потом на 1,5 секунды открыть реле. Во время прерывания светодиод на плате гаснет и загорается в такт секундам. Код отрабатывает верно за исключением того, что прерывание отрабатывает 2 раза. Т.е. подали импульс, заморгал светодиод в течении 7ми секунд, потом щёлкнуло реле (открылось), затем опять щёлкнуло (закрылось), потом всё повторяется еще раз (7+1,5). В режиме дебага работает нормально. Пробовал отключать реагирование на прерывания во время его отработки:
      disableInterruupts(); ... enableInterruupts(); но не помогает.
      STM8S103F3P6
      Код прерывания
      Код в main.c
       
    • By n_angelo
      Привет, знатоки. Написал свою первую программу для контроллера STM8L152C6T6 (STM8L-Discovery). Это, собственно, моя первая программа для контроллеров вообще. Я многого не знаю и не понимаю. Возможно ваш ответ на мой вопрос будет банален.
      Используемая периферия: DAC, DMA, TIM4, CLK, GPIO
      Задача у программы такая:
      В EEPROM зашит один период синусоиды с дискретизацией 44100Гц. Период занимает ровно 101 байт, что по сути должно быть равно 2,29мс (1/44100*101). В коде программы только конфигурация периферии, одно прерывание на кнопке и пустой бесконечный цикл, который ничего не делает. Всю работу выполняет таймер, который настроен выдавать запрос к DMA на каждые 1/44100 (ядро тактируется 2мГц, таймер считает до 45). В свою очередь DMA забирает из EEPROM по одному байту на каждый запрос от таймера и передаёт его в DAC. Далее DAC выводит бесконечную синусоиду на ногу PF0. Прерывание на кнопке запускает весь этот механизм и зажигает светодиод.
      Проблема:
      Измеряя ногу PF0 осциллографом было замечено, что период синусоиды занимает около ≈4мс. Фото под катом.
      Меня это расстроило. Экспериментально выяснилось, что стоит только вписать в бесконечный цикл какую-нибудь проверку, например, [если значение текущего байта синусоиды = 0xFF, то зажечь светодиод, если 0x00, то потушить], то осциллограф показывает правильный тайминг в 2(с копейками)мс. В принципе в теле цикла может быть что угодно, кроме пустоты, и тайминг налаживается.
      Я не могу отдебажить дизассемблер, т.к. его не знаю. Это у меня в планах. Но я очень хочу понять, что происходит и почему пустой цикл рушит тайминг.
      Спасибо.
       
       
       
       
    • By n_angelo
      Привет. Хочу узнать ваше мнение. Я новичок в embedded. Можно сказать, что пришел с веба. Малость Python, JS, C. Меня, конечно, предупреждали начать с AVR, но я уверенный в себе решил сразу залезть на STM32. Вынашивая идею для проекта, параллельно курив Reference Manual и Data Sheet по STM32, я понял что его будет слишком жирно для проекта. Я перескочил на STM8L. И тут меня начал огорчать мир embedded. При переходе между stm8 и stm32 нужно менять IDE (TrueStudio на STVD). Во избежание таких курьёзов я пересаживаюсь на IAR. В процессе подключения родной библиотеки от ST, понимаю что библиотека от IAR для того же самого STM8L152C6T6 дико отличается (макросы, структуры). Привет веб-разработка. Как такое могло произойти, что под один и тот же контроллер ST даёт одну библиотеку, а IAR другую. И нигде в уроках тебя не предупредят об этом. Ну, ребят, у меня всего одна жизнь. Вы уже договоритесь там между собой? Придите к единому стандарту. Или они так решили новичков завендерлочить? Моё мнение (не претендует на правильное): пробираясь сквозь тернии популярной архитектуры ARM, инфраструктуры, инструментария, забываешь про бизнес-логику устройств. А еще просто пропасть между "я ничего не понимаю" и "господи, я зажег светодиод". Речь не о копипастерах с уроков, а действительно понимая что ты делаешь, в каком регистре, что меняешь. Это путь в 2000 (а то и больше) страниц на английском перечитанных по несколько раз, чтобы отоложилось. И в конце тебя ждут разные версии одной и той же библиотки в разных IDE. И сидишь вдупляешь... ну почему... я же в правильный регистр кладу правильную маску... ох, наболело. Такое ощущение что не для людей это всё делали, не для людей.
      Ваше мнение?
    • By akva
      Народ помогите разобратся с выводом изображения на цветной дисплей от видеоискателя видеокамеры панасоник NVR 2000, схема есть куда припаять питание и виеовход
      NV-R50_NV-R500.pdf
×
×
  • Create New...