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

STM32 для чайника


ART_ME

Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

5 hours ago, my504 said:

для имбецилов

вы даже это слово с ошибкой пишите

5 hours ago, Darth_Vader said:

Сформулируйте кошерное программирование МК по вашему мнению

да он уже сформулировал в принципе.

1. Код должен быть максимально низкого уровня абстракции. Даже лишний дефайн это зло

2. Мануалку по процу ты должен знать на зубок и с подскока оттараторить весь набор флагов и регистров по каждому блоку

3. Сам обязан писать либы. Читать чужие это моветон

4. Согласно этикету профи обязан вылизывать код до кошачих яиц. И чтоб ни единого лишнего байта или такта!

с реальной жизнью это все не имеет правда ничего мало общего, но человек убежден в обратном. 

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

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

3 часа назад, mail_robot сказал:

вы даже это слово с ошибкой пишите

да он уже сформулировал в принципе.

1. Код должен быть максимально низкого уровня абстракции. Даже лишний дефайн это зло

2. Мануалку по процу ты должен знать на зубок и с подскока оттараторить весь набор флагов и регистров по каждому блоку

3. Сам обязан писать либы. Читать чужие это моветон

4. Согласно этикету профи обязан вылизывать код до кошачих яиц. И чтоб ни единого лишнего байта или такта!

с реальной жизнью это все не имеет правда ничего мало общего, но человек убежден в обратном. 

https://ru.wikipedia.org/wiki/Имбецильность

Не стоит за меня отвечать. Ваши фантазии сродни Вашим профессиональным предпочтениям.

1. Абстракции являются частью кода и потому должны соответствовать решаемой задаче. Отсюда следует, что и дефайны, и макросы, и  функции нужно создавать самому. 

2. Да, мануалы нужно знать назубок. Включая референсные, желательно аппноты по тематике разработки, необходимую теорию методов и алгоритмов.

3. Писать свои и читать чужие - это не взаимоисключающие понятия. Чтобы написать свои, можно и желательно прочитать чужие. Но из этого не следует, что чужие надо применять. Они просто будут частью знаний. Ранее я упоминал, что стеки стандартных протоколов  вполне целесообразно брать готовыми с допиливанием под свой алгоритм, либо выстраивая свой код вокруг них. Зависит от задачи.

4. Есть участки кода, где и такты приходится считать, например латентность обработчиков прерываний или ресурсоемкие функции, где тело функции вызывается многократно при лимите времени исполнения задачи. Иногда переход на более мощный МК приводит к финансовым потерям, либо к энергетическим. А порой к необходимости отказа от определенного аналогового фронтэнда , либо специфической периферии, с помощью которых очень эффективно решается основная задача устройства.

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

 

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

12 часа назад, my504 сказал:

Тогда и появится интерес к настоящему творчеству, а не примитивному складыванию кубиков созданных чужим дядей для имбецилов

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

Я Вам открою страшную тайну, операционная система, которой Вы пользуетесь при проектировании, также является «кубиком созданным чужим дядей для имбецилов», среда разработки, в которой Вы пишите код, аналогично. Драйвер для МК на ОС я также не думаю, что Вы с нуля писали и эту цепочку можно продолжить/расширить. И каждый из этих «кубиков» может тем или иным образом повлиять на дальнейшую правильную работу МК. Добро пожаловать в клуб по «складыванию кубиков созданных чужим дядей для имбецилов».

Открою ещё одну страшную тайну, бОльшая часть кода ОС, ИСР писалАсь людьми, которые, возможно, не до конца понимали как работает тот или иной регистр на ПК, но это не мешает миллионам людей пользоваться данными продуктами. Да, можно резонно заметить, что ОС периодически тормозят, их надо перезагружать из-за утечек памяти и т.п., но несмотря на это люди такие "мазохисты", что почему-то предпочитают периодически подвисающий смартфон, чем хорошо сделанный калькулятор на регистрах.

3 часа назад, my504 сказал:

1. Абстракции являются частью кода и потому должны соответствовать решаемой задаче. Отсюда следует, что и дефайны, и макросы, и  функции нужно создавать самому. 

Не следует. Если есть функция, класс, не важно, которая на 80% подходит для решаемой задачи и вы прекрасно её читаете и понимаете что и как она делает, нет смысла писать всё с нуля, достаточно доработать 20%. 

4 часа назад, my504 сказал:

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

Вот в этот момент и переходите на ППР.

4 часа назад, my504 сказал:

Именно так устроена реальная жизнь. Именно это интересно.

Это из разряда: "есть два мнения: моё и неправильное". Вам это интересно, а другому интересно делать "подвисающие смартфоны", которыми будут пользоваться многие.

Ссылка на комментарий
Поделиться на другие сайты

@ruhi Ну хорошо ОС это слишком жирно, пусть это будет менеджер задач. Но создавая велосипед я много чего узнаю о работе ядра. Я никуда не спешу т.к. это просто хобби, а работа с МК и программированием не связана совсем.

Ссылка на комментарий
Поделиться на другие сайты

А ещё кто-то пользуется фреймворками! :D

Такое впечатление, что @my504 не слышал про объектно-ориентированное программирование.

Изменено пользователем Darth_Vader
Ссылка на комментарий
Поделиться на другие сайты

@Darth_Vader А вы знаете основные принципы ООП, где они в HAL? Или по вашему указатель на структуру это и есть объект? И на этом ваше ООП и заканчиваеться.

Изменено пользователем MasterElectric
Ссылка на комментарий
Поделиться на другие сайты

14 часа назад, my504 сказал:

Вы несете оголтелую чушь, Darth Vader. Чтобы знать возможности контроллера ДМА, нужно изучать документацию на МК, а не HAL. Тогда и появится интерес к настоящему творчеству, а не примитивному складыванию кубиков созданных чужим дядей для имбецилов. 

Я вот очень против творчества! Таких знаете ли художеств насмотрелся! После которых любой ХАЛ кажется милым и незатейливым!

Вы попробуйте какой ниТо драйвер под Линух написать, например, не самый примитивный, интересно, как на вас подействует разнообразие тамошних структур и дефайнов.

А еще там ИОКТЛы есть...

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Darth_Vader сказал:

При наследовании что наследуется? :)

Причём тут наследование ? :)
Или у Вас только слово "наследование" ассоциируется с ООП ?

Вы написали :

4 минуты назад, Alex сказал:

ООП и строится на использовании ранее написанного кода

ООП не строится ни на каком коде. ООП - это объекты (кслассы) и взаимодействие между ними.

Ссылка на комментарий
Поделиться на другие сайты

39 минут назад, Darth_Vader сказал:

HAL тут ни при чём, но вот ООП и строится на использовании ранее написанного кода (наследование).

Тут вы явно ошиблись, потому что копи паст это тоже "использовании ранее написанного кода".

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Alex сказал:

Причём тут наследование ?

Это одно из основных понятий ООП.

2 минуты назад, Alex сказал:

Или у Вас только слово "наследование" ассоциируется с ООП ?

Нет, не только. А что?

Цитата

Наследование — свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником, дочерним или производным классом.

 

Только что, ruhi сказал:

Тут вы явно ошиблись, потому что копи паст это тоже "использовании ранее написанного кода".

Одно другому не противоречит.

Ссылка на комментарий
Поделиться на другие сайты

@Darth_Vader , что Вы уцепились за слово "наследование" ?
ООП - это не наследование ! И не строится оно ни на каком наследовании !

Говорю Вам, лучше бы Вы промолчали. Тем боле о том, что кто-то другой не понимает что это такое.

Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, Darth_Vader сказал:

Одно другому не противоречит.

Я всегда думал что цель ООП исключить КОПИ ПАСТ. Поэтому если есть копи паст, то нет ООП!

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Alex сказал:

что Вы уцепились за слово "наследование" ? ООП - это не наследование !

Вы читать умеете, что я пишу?

"Это одно из основных понятий ООП"

Я нигде и не утверждал, что "ООП - это наследование".

Читайте внимательнее, мне ваши домыслы в отношении своих слов опровергать нет никакого интереса.

2 минуты назад, ruhi сказал:

Я всегда думал что цель ООП исключить КОПИ ПАСТ.

Вы ошибались. ООП используется для других целей.

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Darth_Vader сказал:

Я нигде и не утверждал, что "ООП - это наследование".

А это что :

49 минут назад, Darth_Vader сказал:

но вот ООП и строится на использовании ранее написанного кода (наследование).

?

Вы сами то читать умеете, что сами же и пишете ?
По-моему, домыслы у Вас, а не у меня. :D

Вы несёте полную чушь, извините ....

Ссылка на комментарий
Поделиться на другие сайты

Только что, Alex сказал:

Вы сами то читать умеете, что сами же и пишете ?
По-моему, домыслы у Вас, а не у меня

А что вас не устраивает?

Что бы описать новый класс на основе СУЩЕСТВУЮЩЕГО класса, класс-родитель уже должен быть написан, т.е. используется ранее написанный код. Это называется наследование - одно из четырёх основных понятий ООП.

Но если вы умеет наследовать от несуществующего класса, тогда ой :o

Ссылка на комментарий
Поделиться на другие сайты

Я в курсе, что такое наследование, не надо мне тут с умным видом копипасты вставлять из интернета :)
Вы уходите от своих же слов, переводя разговор на тему наследования.

Ещё раз внимательно прочтите весь диалог и вдумайтесь. По 100 раз рассказывать Вам в чём Вы не правы, я не собираюсь...

Ссылка на комментарий
Поделиться на другие сайты

36 минут назад, Darth_Vader сказал:

Вы ошибались. ООП используется для других целей.

В этом я не мог ошибиться! Я поясню: Одной из целей применения ООП является исключение КОПИ ПАСТ - ов.

Только это обычно явно не декларируется, обычно упоминают расширяемость, управляемость и т.д. , которым использование КОПИ ПАСТ-а напрямую противоречит.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, Koret сказал:

Ребята, не "ругайтесь", чтобы в общих чертах понять суть ООП, достаточно в поисковике набрать "парадигмы ооп".

Нет, этого точно не достаточно! Там вы найдете кучу теорий от тех кто думает что знает что такое ООП, ни имея никакого опыта работы хоть с какой то плохонькой реализацией иерархии объектов имеющей практический смысл. Вот с предложением попробовать написать ДЛЛ-ку содержащюю СОМ объект, который будет работать в соответствии с заявленной функциональностью под соответствующим фреймворком я бы согласился :) !

Это именно так сложно как эти предложения, и даже сложнее!

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...