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

Вопросы от начинающих по МК


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

37 минут назад, ARV сказал:

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

Лажает она на 99,99% по причинам ошибок в коде. Причем не синтаксических, естественно, а алгоритмических. Это тот самый клоунский подход, когда изящности кода приносят в жертву все остальное.

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

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

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

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

Просто удивительно, как вас несёт из-за простого нежелания делать по-вашему! Говорил же: вам придётся смириться с тем, что не все поголовно с вами согласны. С вашим самомнением это сложно, я понимаю, но для вас нет иного варианта, кроме как смириться с этим!

 

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

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

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

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

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

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

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

Цитата

my504  - понять что генерит компилятор можно без труда

Если бы "компилятор" - это была бы фамилия одного человека, то была бы ваша правда. Но, увы, так уж сложилось, что компиляторы (даже тот же , но уже другой версии) компилируют, данный вами текст, не совсем одинаково. И я даже не говорю про полученный код из разных языков и опять же их версий. Посему преклоняюсь перед вашими экстрасенсорными возможностями. :)

Цитата

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

В "жертву" приносят (пардон) говно-код хреновой версии компилятора или не совсем логичной последовательности операций (с точки зрения машинного процесса). И вот апосля утверждения выше, что-то у меня закрались смутные сомнения :rolleyes: про -

Цитата

my504 - пПатамушта пишу и на АСМе

(1) Бывает ещё, что оптимизация требуется коду, который возник с не совсем "изящно" написанной программы в языке. (2) Или используемый вами компилятор, писала "клюшница", как и тот "оптимизатор", который нуждается в оптимизации. :)

P.S. Забежал сюда случайно и мне продолжение данного диалога не интересно. Но промолчать не смог. Удачи всем. :bye:

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

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

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

6 часов назад, ARV сказал:

Просто удивительно, как вас несёт из-за простого нежелания делать по-вашему!

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

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

6 часов назад, valentinovich сказал:

Если бы "компилятор"...

Удачи всем. :bye:

Компилятор используют тот, который доступен для данной платформы и с теми недостатками, которые в нем есть. Речь не шла о свойствах самого компилятора. Речь шла о том, что нет смысла ПОСТОЯННО смотреть в дизасм. И речь шла исключительно про Си.Поэтому - НЕ В ТЕМУ. 

И Вам удачи. :bye:

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

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

8 часов назад, ARV сказал:

Думаю, вам давно пора

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

Итого. в сухом остатке по трем совершенно разным вопросам:

1. Частный случай - двойная инверсия vs явное приведение типа.  Можно так, как нравится. Но читабельность и доступность выше тогда, когда не требуется объяснять  "почему так". Иначе зачем вообще тут было объяснять очевидное?

2. Стиль написания - лишь бы работало и влезло. Аргумент из совсем свежей практики привел. От вас аргументов не услышал.

3. Методы и организация разработки. Ну тут совсем все плохо. Видимо у вас есть только фрилансерский опыт...

 

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

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

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

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

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

Итого в сухом остатке:

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

Но читабельность и доступность выше тогда, когда не требуется объяснять  "почему так". Иначе зачем вообще тут было объяснять очевидное?

Несовместимость типа bool с различными стандартами Си даёт преимущество двойному отрицанию. Объяснять нужно только начинающему, а настощий профессионал это понимает без вопросов. Именно настоящий профессионал в своё время мне и показал этот пример.

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

Стиль написания - лишь бы работало и влезло

Программа на ЯВУ пишется для людей, и главная цель - иметь сопровождаемый код. Вопросы оптимизации низкого уровня ЯВУ не касаются. И не "лишь бы работало", а как минимум удовлетворяло трем критериям ТЗ: по прохождению тестов, по объему и по быстродействию. В данном случае ТЗ - это не ТЗ от заказчика, а задание постановщика задачи программисту. 

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

Методы и организация разработки.

Я могу путаться в названиях должностей, т.к. за модой в этой области не слежу, но нормальная разработка ведется примерно следующим образом: есть менеджер проекта, который следит за тем, чтобы заказчик был удовлетворен, есть архитектор проекта, который намечает ключевые аспекты решения задачи, определяет инструментарий и общую архитектуру (в том числе методы аналитических преобразований) - короче, формирует задачу программисту и контролирует её выполнение, есть программист, который по заданию архитектора пишет и отлаживает программу, есть тестировщик, который обязан покрыть код текстами (опять же по архитекторским планам) и доказать архитектору его корректность ... Где-то параллельно существует аналогичная линия аппаратной разработки, которая отпочковывается от общей где-то на уровне архитектора... В общем, как-то так. Разумеется, по разным причинам можно объединять обязанности, например, программист может быть паралельно и электронщиком или тестировщиком, архитектор - менеджером и/или программистом... Но когда один человек объединяет в себе все эти функции, он все их выполняет плохо. Вариант свергениальности, когда некто српавляется со всеми обязанностями без лажания постоянно и длительно, можно отбросить, поскольку это редкое явление - Линус Товальд один, а остальные "серости" делают 99% работы уже много лет с завидным успехом. Потому что в бизнесе методология решает больше, чем гениальность.

У вас,@my504 , в конторе явные проблемы с менеджментом и персоналом, а так же со стратегией решения поставленных задач. Думаю, с вашим выходом на пенсию контора ваша развалится, ибо найти второго такого гения, который может 100 дел делать с нереальным качеством, не найти. Вы можете и дальше гнуть свою линию - мне все равно. Можете оставить последнее слово за собой, это льстит вашему самолюбию - я тоже не буду возражать.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

1 час назад, ARV сказал:

У вас,@my504 , в конторе явные проблемы с менеджментом и персоналом, а так же со стратегией решения поставленных задач. Думаю, с вашим выходом на пенсию...

Если наша контора решала свои задачи теми же способами, которыми решают задачи в  каком нибудь Боинге или Самсунге, то нашей конторы не существовало бы уже лет 20 как.

Опыт разделения функций разработки по описанному Вами сценарию у нас был. Догадайтесь с одного раза о каком изделии идет речь? :crazy:  Угадали. О том самом. Которое было благополучно слито.

На самом деле, способы разработки определяются сложностью изделия. Изделие состоящее из двух плат общей площадью в 4 кв. дм и общей себестоимостью порядка 200 долларов грамотно сделать может ТОЛЬКО ОДИН ЧЕЛОВЕК.  Тот самый "эмбеддер". Специалист по встраиваемым системам. На жаргоне спецов по персоналу - электронщик. А по факту - обычный радиоинженер.

ЗЫ. По поводу моей пенсии. В любой конторе с любой структурой есть незаменимые люди. Они незаменимы здесь и сейчас. Но если они уходят, то появляются другие незаменимые люди. И задача того, кто уходит, держать свое хозяйство всегда готовым к передаче другому. Документацию читаемой, код масштабируемым, идеи оформленными на бумаге. Это все возможно тогда и только тогда, когда человек работает как часть компании, а не для того, чтобы намыть бабла и свинтить.

2 часа назад, ARV сказал:

Итого в сухом остатке:Несовместимость типа bool с различными стандартами Си даёт преимущество двойному отрицанию.

Можно подумать, что в радиотехнических изделиях нужна совместимость "с разными стандартами Си"? Вы вообще о каком сферическом коне тут вещаете? В пределах жизни одного изделия ему суждено быть в пределах одной, максимум двух платформ МК и точно только ОДНОГО стандарта Си. В данном случае С99. И bool  в нем имеется.

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

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

01.07.2020 в 12:39, my504 сказал:

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

такое бывает не всегда.

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

я лично вижу, что есть полезные, рациональные, "зерна" и у одного оппонента и у другого.

но мы наблюдаем несовместимость "стандартов" у оппонентов ...

Мудрость приходит вместе с импотенцией...

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

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

9 часов назад, Starichok сказал:

я сам был свидетелем

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

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

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

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

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

28.06.2020 в 22:26, pndbr сказал:

я понимаю что что-то тут не так, и если бы все было так просто то не использовались стандартные конструкции типа:

if((0 != (PINB & (1<<PINBO)) & (0 == (PINB & (1<<PINB1)))

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

Проблема этой конструкции в том что порт читается ДВА раза, это обычно приводит к непредсказуемому поведению кода которое очень трудно диагностировать!

Решением является чтение значения порта в переменную и использование уже этого сохраненного значения столько раз сколько вам надо:

char tmp = PINB;//это принципиально должно быть отдельной инструкцией чтения
if((0 != (tmp & (1<<PINBO)) & (0 == (tmp & (1<<PINB1)))// и тогда тут как вам нравится с использованием tmp!!!
    ...

Когда вы читаете порт второй раз вы можете прочитать уже изменившееся значение и вы наверняка не заметили и не продумали такую возможность - это очень не очевидно!

А оно будет прочитано ИМЕННО 2 РАЗА в вашем исходном варианте, потому что порты объявлены volаtile , и значит к ним не применяется оптимизация!

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

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

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

18 часов назад, ruhi сказал:

я смотрю вам тут очень долго...

Может я чего то не понял, но зачем весь этот вычурный перфоманс?

Может просто маску на порт?

if ((PINB&0b11) == 0b01)
  {
// bla-bla-bla
  }

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

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

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

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

29 минут назад, my504 сказал:

Может просто маску на порт?

Может и просто. Но речь шла совсем не об этом, потому этот аспект и не рассматривался.

Речь-то шла о том, как писать сложные логические выражения и не путаться между & и && в частности.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

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

как писать сложные

Прежде всего нужно избегать писать сложные выражения, а если это неизбежно, то стараться их логично и читабельно структурировать (например через дефайны).

И  сложность к пониманию различия между &  и  && никакого отношения не имеет. 

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

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

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

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

Именно об этом речь и шла.

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

никакого отношения не имеет

Отмотайте пару страниц назад и ознакомьтесь с началом обсуждения - проблема у начинающего (одна из) была как раз в том, что он применил & для сравнения результатов наложения масок на биты порта. Хотел логически, а сделал битово. Так что все имеет значение, если мало опыта.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

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

Отмотайте

Зачем мне мотать назад, если я комментировал КОНКРЕТНОЕ предложение для ТС? Я писал лишь о том, что буфер тут ни к чему. И если советовать, то отдефайненную маску, а не пытаться странным образом один выкрутас заменять на другой, даже если это решает проблему атомарности.

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

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

52 минуты назад, my504 сказал:

Может просто маску на порт?


if ((PINB&0b11) == 0b01)

А может кто либо  объяснить почему на порт я маску могу наложить, а на переменную не могу? 

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

28 минут назад, dasZebra сказал:

кто либо 

А кто утверждал, что на переменную маску наложить нельзя?  Тут говорилось, что буферизовать порт в данном случае бессмысленно. Лишнее действие. И только.

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

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

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

А кто утверждал, что на переменную маску наложить нельзя?

Никто. Я просто спросил: "почему на порт я маску могу наложить, а на переменную не могу?"  Буферизация была нужна для того, что бы сравнивать текущее состояние порта  с предидущим. Красиво сделать не получилось, пришлось делать как обычно, но вот осадочек остался.

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

19 минут назад, dasZebra сказал:

на переменную не могу

Ну это вопрос к Вам. Вероятно есть причины почему ВЫ не можете, а я, например, могу.. :)

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

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

Плавный пуск стоп от одной кнопки. Так будет работать? Если в обработчика таймера ISR

if(button==1)
    {
    if(f_button==0)
        {
        f_button=1;
        while(OCR1A<=200)OCR1A=OCR1A+5
      if(f_button==1)
          {
          f_button=0;
          while(OCR1A=0) OCR1A=OCR1A-5
          }
    }

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

Плавный пуск стоп от одной кнопки. Так будет работать? Если в обработчика таймера ISR
if(button==1)
    {
    if(f_button==0)
        {
        f_button=1;
        while(OCR1A       if(f_button==1)
          {
          f_button=0;
          while(OCR1A=0) OCR1A=OCR1A-5
          }
    }

Delay добавьте. Мк до 40 сосчитает очень быстро.

Текущий сетап: BBB-AD-H6.1-Nataly2014-AudioPro

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

05.07.2020 в 15:02, my504 сказал:

но зачем весь этот вычурный перфоманс?

перформанс устраивали вы, а я просто ответил на вопрос. Откуда взялся такой ИНТЕРЕСНЫЙ вопрос мне не важно.

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

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

7 минут назад, Дмитрий Мамедиев сказал:

Не понял какие 40?

рукалицо...

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

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

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

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

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

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

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

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

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

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

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

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

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