Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 10:34:42

Таксь, загибаем пальцы что нельзя на С++ : кварц нельзя, GPIO со светодиодами нельзя, USB нельзя. DMA, как я понял, тоже нельзя? Может сразу перечислите что можно и не будем мучаться?

Заменил пример на классическую макросовскую залипуху.
Изображение

изображение_2022-12-25_112312443.png
(60.87 KiB) Скачиваний: 545

Последний раз редактировалось VladislavS Вс дек 25, 2022 11:24:51, всего редактировалось 3 раз(а).

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 10:35:13

Ну это у всех так бывает :) У меня тоже есть навалом незавершенных и заброшенных проектов, которые потеряли актуальность или были ошибочными. Это нормально. Но есть немало и конечных продуктов, причем независимо от языка их написания. 18 лет назад у меня были конечные продукты даже на ассемблере, и ничо, норм. Как бы цель то в том, что бы делать конечный продукт, а не работу ради работы. По-моему, так.

VladislavS, ну это опять-двацатьпять, хеллоуворлд. VladislavS - типичный представитель хеллоуворлдщиков. Есть такая каста пейсателей. Ни одного законченного осмысленного проекта, но тысячи хеллоуворлдов на протяжении многих лет. Уж сколько раз его просили - результата ноль, просто потому что нету ничего.

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

VladislavS, никакого хамства здесь нет! Никто вас не задевает и ваше ЧСВ не ущемляет. Наоборот, хотели посмотреть, чего вы достигли. Но оказалось, что законченного осмысленного просто и нету. Разве так сложно было сразу прямо ответить? Ничего страшного в этом нету, это нормально. Сложно было отвеить чтоль? Неудобный для вас вопрос?. Ну что поделать. есть такая каста - хеллоуворлдщик. Не плохая и не хорошая. Просто писанина ради писанины, без конечного результата.
На этом присвоении звания хэллоуворлдщик торжественно и закончим. Поздравляю вас, это почетно! :) Серьезно, межу прочим, без шуток.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 11:42:02

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

Сейчас STM32G0 по 60 центов можно взять, а С++ компилятора нет разве что для не особо популярных 8-ми битных пиков, ну для STM8 еще компилятор есть, но старенький. Так может этими морально устаревшими восьмибитками лучше не пользоваться, тогда на них и ничего переносить не придется? Или с ARM та же проблема, их изучать нужно лет так 20? :)

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 12:25:11

Сейчас STM32G0 по 60 центов можно взять, а С++ компилятора нет разве что для не особо популярных 8-ми битных пиков...

Ну ладно. Да, можно взять. А люди хотят на ПИКах! Или даже на MCS51! И что ты с ними сделаешь? Ну вот нравится им с их игрушками играться, и чо? Ну не запретишь же им.) Такая вот фигня, малята.) И у меня самого куча этого хлама валяется. Понятно, что лучше/современнее STM, но задачи то разные. Иной раз нужно задержку выключения света сделать (жена вслепую по лестнице не может). И чо?)))

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 12:52:44

Blue pill и Black pill все знают. Встречайте Green pill. Только не ржите сильно. Зато С++ на него есть в любом количестве.


Добавлено after 1 minute 21 second:
А люди хотят на ПИКах! Или даже на MCS51!
Выдать по AVR-ке, которая за счёт наличия средств разработки их и того.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 13:48:09

Ну ладно. Да, можно взять. А люди хотят на ПИКах! Или даже на MCS51! И что ты с ними сделаешь?

Ничего не делать, пренебречь в силу малого их количества :)

OKF писал(а):Понятно, что лучше/современнее STM, но задачи то разные. Иной раз нужно задержку выключения света сделать (жена вслепую по лестнице не может). И чо?)))
Во-первых, для таких простых задач без разницы на чем писать, тут отсутствие C++ не мешает, можно взять любой мк и спокойно писать на С. Во-вторых, если у меня есть дешевый, значительно более производительный и при этом мало потребляющий STM32 с которым я привык работать и для которого написано множество либ, то на нем можно делать практически что угодно, от таких простейших проектов и до таких которые 8-ми битки просто не вытягивают. Скоро еще STM32C0 появится, самая простая серия, встроенный генератор на 48MHz и никаких страшных PLL :)

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 15:07:46

Ой, да ладно вам. Понятно что можно всем выдать что то посовременнее, но это они явно не поймут)). Вы же знаете эту старую гвардию! У них каждая спичка на счету.) Да и из нашего поколения(которые не избалованы объёмами), многие считают биты... И что ты им втемяшишь!(((
Но, в тоже время, что то в этом и есть... Или нет?

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 16:57:03

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

поэтому можно сколько угодно говорить о пользе плюсов, но из-за порога вхождения все так и останется напрасным...

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 17:05:05

Ну там с С++ получилась такая незадачка, что он, будучи наследником С, унаследовал и евоные проблемы. Дальнейшие коррективы языка сводились к навешиванию заплаток, а затем поверх заплаток прикручивались заштопки, и так далее. Из-за чего язык получился неуклюжим, а местами и просто тупым. Это становится видно в сравнении с другими ЯВУ. Скажем так - С++ является первым уровнем семейства ЯВУ.
Писать на нем конечно же можно. Но во всём должен быть разумный компромисс, и любые крайности - они контрпродуктивны. Золотая середина - как известно, в середине.
Порог вхождения не является слишком высоким. Ардуинщики же "входят" ведь. Ну. А в остальном надо лишь правильно применять инструмент для достижения конечного результата, а не для писанины ради писанины.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 20:15:04

Из-за чего язык получился неуклюжим, а местами и просто тупым. Это становится видно в сравнении с другими ЯВУ.

А толку если конкретно для эмбедда ничего лучше C++ нет, даже учитывая все его недостатки.

проблема С++ в том, что грандиозные изменения в нем происходят быстрее, чем реально освоить обычному любителю.

Одно дело начать учить новый язык с нуля, Rust, например, и совсем другое учить C++ зная С, когда у тебя все предыдущие наработки компилируются новым компилятором в той же IDE. Или обычный любитель не запомнит, что можно вместо typedef struct писать просто struct, а вместо func(void) просто func()? Тут по мелочи поменял, там поменял, ненапряжное поступательное движение вперед, то что в самом языке происходят грандиозные изменения ничуть этому не мешает.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 21:24:29

Самое прикольное, про ужасы и страшные изменения говорят те кто языка не знают и не пользуются. А те кто на нём пишут годами ждут нововведений.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 21:29:25

я сужу по себе: ассемблер х86, i51, avr, паскаль, delphi, C, javascript и немного java, php (пхп на уровне "изменить на сайте кнопку") я освоил самостоятельно и довольно быстро, а вот С++, не смотря на многочисленные "подходы к снаряду", так и не смог.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 21:50:18

ждут нововведений

Может, просто язык сменить на нормальный, а? Потому что штопание глючного С++ ничего более уже не дает.
Ну и как я уже не раз говорил, надо писать не ради писанины, а ради конечного результата.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 23:13:15

Как верно заметил Reflector, в эмбедде лучше нет, не на что менять.

Re: Вопросы по С/С++ (СИ)

Вс янв 01, 2023 18:45:38

Добрый вечер.
Решил вот на досуге пробежаться по теме lvalue/rvalue ссылки. Поговаривают что это типа круто, клёво и по современному. Повозившись немного с лампочками и "Хело ворлд" создалось мнение что для микроконтроллеров эта фича не оправдана и полезного понта не дает. Памяти мало, в С++ move нет, new / delete / ... ( но есть самодельное и на больших костылях ). Код -> main.cpp
Класс для пинов ->
Оправдано ли Rvalue, семантика перемещения и пр. байда для МК?
Вложения
123.png
(55.44 KiB) Скачиваний: 39

Re: Вопросы по С/С++ (СИ)

Вс янв 01, 2023 19:22:54

Как верно заметил Reflector, в эмбедде лучше нет, не на что менять.
а разве С не лучше? имхо, количество людей, способных разобраться в сишном коде и поддерживать его, кратно больше, чем тех, кто способен разобраться в чужом плюсовом коде (для эмбеда).

Re: Вопросы по С/С++ (СИ)

Вс янв 01, 2023 20:09:59

Тем временем C23 продолжает перенимать фичи у С++, бетка gcc 13 уже компилит такое:
Код:
constexpr auto val = 0b1001'1100;

Re: Вопросы по С/С++ (СИ)

Вс янв 01, 2023 22:36:10

значит, скоро количество способных понять чужой код С и С++ сравняется...

Re: Вопросы по С/С++ (СИ)

Вс янв 01, 2023 23:19:15

20 лет, не меньше.

Re: Вопросы по С/С++ (СИ)

Пн янв 02, 2023 15:57:47

И вместо обычного шаблона предлагается вот такой хренью страдать. Мир сошёл с ума.
Код:
#define dataCondStoreTG(P, E, D)             \
  do {                                       \
    auto* _pr_p = (P);                       \
    auto _pr_expected = (E);                 \
    auto _pr_desired = (D);                  \
    bool _pr_c;                              \
    do {                                     \
      mtx_lock(&_pr_p->mtx);                 \
      _pr_c = (_pr_p->data == _pr_expected); \
      if (_pr_c) _pr_p->data = _pr_desired;  \
      mtx_unlock(&_pr_p->mtx);               \
    }  while(!_pr_c);                        \
  } while (false)   
Это если что, из описания нововведений к GCC 13. При том что на богомерзких и совершенно непонятных плюсах, этот код, лишённый всей макросовской мерзости , полагаю, будет вот так выглядеть.
Код:
void dataCondStoreTG(auto* P, auto E, auto D)
{
  bool _pr_c;
  do {
    mtx_lock(&P->mtx);
    _pr_c = (P->data == E);
    if (_pr_c) P->data = D;
    mtx_unlock(&P->mtx);
  } while (!_pr_c);
}
Последний раз редактировалось VladislavS Пн янв 02, 2023 16:18:17, всего редактировалось 2 раз(а).
Ответить