Easyelectronics.ru

Электроника для всех
Текущее время: 16 ноя 2018, 12:53

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 03:37 
Заглядывает иногда

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 62
Mack-L писал(а):
Выкладываю простую реализацию обработки кнопки с загоранием светодиода

Этот код не поможет понять как программируются микроконтроллеры. Наоборот, даст неверные навыки. То что это на первый раз - неважно. Ты учишься светодиодом мигать или МК программировать? Для первого - сделай симметричный мультивибратор, а для второго - сделай обработку кнопки по прерыванию. Придется еще и с дребезгом побороться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 09:13 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2450
Повторюсь, что с дребезгом тут бороться не надо, там стоят конденсаторы параллельно кнопкам.
Вот тут это хорошо видно, что есть нарастание и спад благодаря конденсаторам, и никакого дребезга
Вложение:
DS1Z_QuickPrint14.jpg
DS1Z_QuickPrint14.jpg [ 35.96 Кб | Просмотров: 721 ]


Oxford, там у L-серии фишка в том, что после сброса у пинов выбран режим аналогового входа и все биты стоят в 1 (MODERbits = 11), поэтому чтобы переключтить на floating input, нуужно именно сбросить бит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 10:33 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2016, 00:04
Сообщения: 256
Откуда: Россия, Москва
Простите, но не рассматривали случайно вариант начинать с программирования с использованием библиотеки HAL?

Код:
void loop(void) {
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
    HAL_Delay(500);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
    HAL_Delay(500)
}


На эту тему можно рекомендовать книжку Mastering STM32 https://leanpub.com/mastering-stm32 На уровень регистров можно будет спуститься после.

_________________
https://eax.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 10:52 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2450
Не учите человека сразу плохому. Он сам успеет плохому научиться.
У HAL-а там куча лишнего мусора, чистый выхлоп - процентов 15, остальное - вода. Приверженцы HAL-а не заглядывают внутрь ф-ций HAL-а, посему у них создается ложное впечатление от якобы "простоты". Хотя по числу подготовительных строк HAL не назовешь компактным. По-прежнему, требуется много букв, но потери производительности идут двойные - сначала на заполнение структур, потом на ее распаковку и все эти проверки-перепроверки. Вы даже не задумываетесь, что ваша строчка включения светодиода превращается в десятки строк внутри HAL-овой ф-ции.
И не забывайте, что работаете с L-серией, которая может работать на очень низких частотах, на которых HAL будет дико тормозным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 14:49 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3745
Откуда: Кемеровская область, Киселевск
BusMaster писал(а):
Oxford, там у L-серии фишка в том, что после сброса у пинов выбран режим аналогового входа и все биты стоят в 1 (MODERbits = 11), поэтому чтобы переключтить на floating input, нуужно именно сбросить бит.


Точно, не посмотрел состояние сброса. Тогда ок все. Убрал сообщение.


Ну там не все биты.

Reset value:
• 0xABFF FFFF (for port A)
• 0xFFFF FEBF (for port B)
• 0xFFFF FFFF (for ports C..G), I
• 0x0000 000F (for port H)

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 21:35 
Заглядывает иногда

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 62
BusMaster писал(а):
Повторюсь, что с дребезгом тут бороться не надо, там стоят конденсаторы параллельно кнопкам.

Мастер, пусть выпаяет конденсаторы и поборется с дребозгом :)
Или ты его специально плохому учишь чтобы конкурентов у тебя меньше было? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 21:46 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2450
Я не испытываю проблем с конкурентами. Но вот ставить конденсаторы параллельно кнопкам - дело хорошее и правильное. Без конденсаторов - это метод далекого прошлого, когда медленные фронты давали сами по себе дребезг. Нынче проблема теряет актуальность благодаря триггерам на входах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 03 июл 2018, 22:32 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5132
Да ну? Не имел никогда проблем с утечкой этих конденсаторов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 09:41 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2704
Смысл ставить кондеры, если в любом случае писать программный антидребезг, просто как правило хорошего тона? Мало-ли кнопка со временем раздраконится настолько, что никакой кондер, или RC-цепь не спасёт? Да и лишние компоненты на плате. Человеко-интерфейс один фиг тормозной, лишние 10-30 мс никто особо не заметит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 16:46 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2016, 00:04
Сообщения: 256
Откуда: Россия, Москва
BusMaster писал(а):
Не учите человека сразу плохому. Он сам успеет плохому научиться.
У HAL-а там куча лишнего мусора, чистый выхлоп - процентов 15, остальное - вода. Приверженцы HAL-а не заглядывают внутрь ф-ций HAL-а, посему у них создается ложное впечатление от якобы "простоты". Хотя по числу подготовительных строк HAL не назовешь компактным. По-прежнему, требуется много букв, но потери производительности идут двойные - сначала на заполнение структур, потом на ее распаковку и все эти проверки-перепроверки. Вы даже не задумываетесь, что ваша строчка включения светодиода превращается в десятки строк внутри HAL-овой ф-ции.
И не забывайте, что работаете с L-серией, которая может работать на очень низких частотах, на которых HAL будет дико тормозным.


Вы все правильно говорите. Но помните, что есть и другая точка зрения, даже две. Первая - про преждевременную оптимизацию. Вторая про то что, что код пишется для решения бизнес-проблем, а не подсчета того, сколько бит он занимает.

Мне нравится HAL тем что он за пару минут решает то, над чем тут десяток экспертов бьются вторую страницу треда. Если после этого окажется что мой светодиод мигает недостаточно эффективно именно в этом месте, или именно это мигание отъело много флеша - нет проблем, можно переписать конкретно это место на регистры.

_________________
https://eax.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 16:54 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5132
afiskon писал(а):
Мне нравится HAL тем что он за пару минут решает то, над чем тут десяток экспертов бьются вторую страницу треда.


Чегой????
Калокуб решает единственное - он позволяет надеяться тупым ламерам, что они что-то напишут ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 16:57 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2450
Да пожалуйста, имейте свою точку зрения, не возражаю. Но тоже помните, что мануал по HAL-у занимает чето там больше тысячи страниц, то есть, ничуть не меньше, чем референс-мануал на микроконтроллер целиком. Так то никакого профита не выходит.
"Не справился HAL - переписать на регистры?" - окей, двойная потеря рабочего времени, даже тройная - изучить еще и реф.ман. Профит в минусẩх.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 20:13 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1337
afiskon писал(а):
Но помните, что есть и другая точка зрения, даже две. Первая - про преждевременную оптимизацию. Вторая про то что, что код пишется для решения бизнес-проблем, а не подсчета того, сколько бит он занимает.

ППКС
Только я бы ещё сказал - для решения каких-то проблем, а не подсчета того, сколько бит он занимает и сколько микросекунд выполняется

BusMaster писал(а):
Но тоже помните, что мануал по HAL-у занимает чето там больше тысячи страниц, то есть, ничуть не меньше, чем референс-мануал на микроконтроллер целиком.

BusMaster, то есть это ты на полном серьёзе предлагаешь абсолютно нулёвому ТС читать RM на L476, или это шутка такая, или что ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 20:22 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2973
Откуда: КЧР, поселок Нижний Архыз
vt340 писал(а):
то есть это ты на полном серьёзе предлагаешь абсолютно нулёвому ТС читать RM на L476

А как можно без прочтения RM что-то на мелкоконтроллер написать? Как абдуринщики — стянуть готовый код? Но таким способом ничего нового не сделать...
Использовать же вместо нормального способа написания кода всякие калокубы — тоже тупиковый путь, т.к. все равно придется читать жирные мануалы, но уже на калокуб. А потом, когда наткнется на проблему (скажем, каловская функция слишком долго выполняется и перенастроить ногу не получается без генерирования сигнала-помехи), ТСу все равно придется читать RM!!!

Ну и нафиг этот график, если можно сразу пролистать даташит и бегло прочитать RM, а далее, по ходу разработки, читать уже внимательно те места, которые нужны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 20:33 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1337
Eddy_Em писал(а):
ТСу все равно придется читать RM!!!

То есть чтобы помигать светодиодом на попавшей [по несчастливой случайности] в руки ТС discovery L476 ему без вариантов необходимо прочитать и понять RM L476 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 20:49 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2450
vt340, погоди, а когда это ты успел стать поклонником HAL-а? :))))))
Про тысячестраничные мануалы - это не более, чем констатация факта. А чем я виноват то? Но ведь при любом раскладе одного лишь HAL-а недостаточно. Надо иметь хотябы самое общее представление о том, про что пишешь.
Тем более, что HAL имеет одну (и не только одну) очень отвратительную для новичков особенность - работу с адресами/указателями переменных, работу со структурами и пользовательскими типами. Откуда новичку в Си знать, что означает амперсанд &, звездочка * и точка . и чем отличается тип структуры от базового типа? Хотя, конечно, можно копипастить по армейскому принципу "делай как я!". Да, так тоже можно. "Не понимаю, как это работает, но эта штука че-то делает". А потом пойдут вопросы как в соседней теме: "Памагите, мине нада чтоба звук записать на FRAM и потом воспроизвести его. Вот портянка HAL-кода на двести строк, скажите, че в ней не так?". vt340, серьзено, загляни в ту тему "Ребята помогите, пожалуйста, новичку!!!(STM32F407)" , покумекай, почитай. Потом когда вернешься, поделишься впечатлениями про HAL. )))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 21:03 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3745
Откуда: Кемеровская область, Киселевск
Им не надо знать как все работает, надо чтобы само все делалось. натыкал и все. Из калокуба делают вторую Arduino.
Читать референс это не для них, а отлаживать с анализатором, осликом это вообще грех.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 21:29 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1337
BusMaster писал(а):
Хотя, конечно, можно копипастить по армейскому принципу "делай как я!".

Копипастить новички будут в любом случае, вопрос только какие образцы - мейнстрим, поддерживаемый всеми ресурсами вендора, или разномастные обрывочные примеры на каких-то форумах
Порядок бьёт класс


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 21:46 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2450
Интересно, когда это HAL стал мейнстримом? Да его, поддавшись на маркетинг, расплодили такие вот неповоротливые как... хм, как ты, vt340?
Впрочем, дело твое, vt340, поступай как знаешь. Только дело то не только в мейнстриме, но и в производительности и конкурентоспособности девайса. При прочих равных, девайсы, написанные без HAL-а, обладают большей производительностью, большей эффективностью, экономичностью, да и не зависят от версии HAL-а. Ой, только не надо спорить с тем, что HAL является низкопроизводительным и малоэффективным кодом. Универсальное решение всегда проигрывает узкоспециализированному. А быстрота составления кода (именно составления, а не написания) выливается в слабоконкурентную продукцию в оконцовке. Особенно заметно это проявляется в мобильных, автономных девайсах с батарейным питанием. Никаким "битьем класса" там и не пахнет. МК L476 - как раз из такой конкурентной ниши, где разница HAL vs. CMSIS наиболее заметна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 22:19 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1337
BusMaster писал(а):
Универсальное решение всегда проигрывает узкоспециализированному. А быстрота составления кода (именно составления, а не написания) выливается в слабоконкурентную продукцию в оконцовке. Особенно заметно это проявляется в мобильных, автономных девайсах с батарейным питанием. Никаким "битьем класса" там и не пахнет. МК L476 - как раз из такой конкурентной ниши, где разница HAL vs. CMSIS наиболее заметна.

Аплодисменты )
А теперь каким боком этот спич, например, к скромному желанию ТС просто сделать часы?
Ты переживаешь, что они получатся у него слабоконкурентными? )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 04 июл 2018, 23:10 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5132
vt340, дык снова кино о главном.

Спорящим:
Есть только два исхода этих потуг.
Или побыстрей натыкать, неутруждая себя любимого изучением.
Или досконално разобраться в работе всего и вся.
Угадайте с 3х раз тупиковый путь.
Одно но , пиздеж о том что эти же часы -первое и единственное поделие, засунуть сами знаете куда.

ЗЫ. vt340, тебя я понял...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 05 июл 2018, 00:16 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1337
dosikus_2 писал(а):
Или побыстрей натыкать, неутруждая себя любимого изучением.
Или досконално разобраться в работе всего и вся.

Давай спроецируем ситуацию на более сложные вещи, чем мигалка и часы
Допустим, usb, или ethernet, или bluetooth, и допустим, что в мк есть соотв и-фейс
Где граница доскональности изучения - спецификации протоколов? и-фейсы в мк? библиотеки?
Я бы ответил - это зависит... )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 05 июл 2018, 00:28 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3745
Откуда: Кемеровская область, Киселевск
А по вашему Apple просто так бабки гребет?
Вложение:
1280px-Aerial_view_of_Apple_Park_dllu.jpg
1280px-Aerial_view_of_Apple_Park_dllu.jpg [ 217.56 Кб | Просмотров: 450 ]

Штаб квартира APPLE, крыша солнечные панели 17 МВатт

https://www.youtube.com/watch?v=uH2QzD-FrNU

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 05 июл 2018, 01:36 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2973
Откуда: КЧР, поселок Нижний Архыз
Oxford, ну про передастов-то не надо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помощь новичку STM32L476VG зажечь светодиод
СообщениеДобавлено: 05 июл 2018, 08:42 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 319
dosikus_2 писал(а):
Или побыстрей натыкать, неутруждая себя любимого изучением.
Или досконално разобраться в работе всего и вся.
.


Всё верно - для программиста в серьезной фирме.
Он будет однозначно конкурентноспособным на рынке труда.
Я бы сказал - экспертом.
А теперь о реальности.
Послезавтра надо выдать плату на изготовление нового изделия (т.е. ее надо нарисовать). Через 3-4 дня она будет готова. Ее набьют и тебе выдадут. Через неделю после этого ты должен ее проверить электрически, создать новый проект, отладить и выдать на испытания. Попутно надо разобраться с новым окружением (типа Блютуз, инклинометр, и проч. и проч.)
Вы уверены, что " досконально разобраться в работе всего и вся" в работе всех регистров L476 добавит вам "конкрурентноспособности"? А может всё же довериться Кубу и HAL-у?

И всё же про RM для L476. Не берусь утверждая, что я , поклонник Куба, всё там изучил, но когда вижу непонятки, то лезу в самую глубь (к примеру когда бился со SPI). Но вот вообще не заглядывал к примеру в I2C, потому что сразу изначально всё работало и многократно проверено.
То же касалось в какой-то степени и другой периферии.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: Atomic-dm


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB