Jump to content

Recommended Posts

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

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

Урок #1:

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

Share this post


Link to post
Share on other sites

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

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

Среда IAR

STM8 Lesson-2.zip

Share this post


Link to post
Share on other sites

Урок #3:

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

Он-лайн тест

Урок #4:

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

Он-лайн тест

Урок #5:

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

lesson3.rar

lesson4.rar

lesson5.rar

Share this post


Link to post
Share on other sites

Импульсный источник питания - расчет за 10 минут в eDesignSuite

Как ориентироваться в огромном количестве существующих вариантов, чтобы выбрать наиболее подходящий для конкретного случая. «Ручной» перебор всех вариантов может оказаться весьма трудоемким процессом, а полученный результат – далеко не оптимальным. Специализированное программное обеспечение, позволяет уменьшить количество рутинных операций при проектировании.

Подробнее

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

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

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

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

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

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

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

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

Edited by IDis

Share this post


Link to post
Share on other sites
                     

Как упростить выбор ИП для промышленного применения?

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

Подробнее

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

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

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

Share this post


Link to post
Share on other sites
                     

Преимущества новых высоковольтных SOI-драйверов Infineon

При производстве драйверов силовых транзисторов компания Infineon использует различные технологии: JI, SOI, CT. Драйверы, выполненные с применением технологии SOI, имеют целый ряд преимуществ по сравнению с классическими JI-драйверами. В статье рассматриваются эти преимущества на примере новых семейств драйверов 650 В 2ED210x и 2ED218x.

Подробнее

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

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

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

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

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

Edited by mail_robot

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
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

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

Share this post


Link to post
Share on other sites

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

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


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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Edited by mail_robot

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
Будут порты ввода вывода, самый простой таймер. "хеллоу Ворлд!" с миганием свеетодиодиком.

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

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

Edited by IDis

Share this post


Link to post
Share on other sites
Будут порты ввода вывода, самый простой таймер. "хеллоу Ворлд!" с миганием свеетодиодиком.

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Edited by i80186

Share this post


Link to post
Share on other sites
мнимый открытый коллектор

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

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

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

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

Edited by IDis

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Edited by i80186

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
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...

  • Сообщения

    • Как же необязательно, когда именно обороты Вас и интересуют?   Иными словами, если в Вашем случае, к примеру, максимальные обороты 3000 об\мин, обеспечиваемые двигателем при питании от 12 В, должны быть обеспечены этим же двигателем при питании и от 10 В. А обеспечение независимости оборотов от напряжения питания и есть ничто иное, как стабилизация оборотов. 
    • Когда я был абитуриентом, то жил в общежитии с одним парнем из Иваново. Он приехал поступать в институт с чемоданом инструментов. Как оказалось - он настоящий Кулибин. Постоянно что-нибудь изобретал. Первым делом придумал как открывать дверь без ключа ( которого и не было ). Прикрутил к замку какой-то рычаг из проволоки, привязал к нему тонкую верёвочку, которая доходила до пола. Подходишь к запертой двери, подсовываешь два пальца в щель под дверью, захватываешь ими верёвочку и дёргаешь - дверь открывается. На первом курсе он сделал целый агрегат на основе будильника и электрочайника, который кипятил воду, заваривал чай и его вовремя будил. Но, проработал он недолго, как-то самостоятельно запустился, когда мы были на лекциях и в результате пожара сгорела кровать.
    • Нужна помощь в настройке бп .Собираю по схеме с первой страницы, на плате GruVital ver2.Высокое напряжение подаю от отдельного бп ,при 150 вольтах включается нормально,но если дать больше то срабатывает защита по току.
    • был такой в 2-ке березке - 2200 пФ на несколько кВ - зеленый - пробивался.
    • Без меток никак. Забудьте. Размер у команд одно или два слова. Если переход длинный, то легко ошибиться. Каждую команду смотреть, сколько она слов занимает. Пример. LDI 1 слово. STS два слова. На ассемлере писать без меток - это выстрелить себе в ногу.
  • Similar Content

    • 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
    • Guest mrRobot
      By Guest mrRobot
      Добрый день! Был бы признателен, если бы кто нибудь подкинул любые источники информации на тему жизненного цикла микроконтроллеров. Книги, статьи, что угодно - лишь бы освещались данные пункты:
      Описание этапов жизненного цикла изделия (микроконтроллеров) и средств автоматизации, применяемых на данных этапах. Анализ взаимодействия средств автоматизации внутри каждого этапа и между этапами. Заранее спасибо!
×
×
  • Create New...