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

Jozef

На чем писать  

595 проголосовавших

  1. 1. Что чаще используете в разработках?

    • Assembler
      165
    • C
      303
    • Что-то еще
      66


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

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

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

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

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

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

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

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

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

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

Кол-во просмотров велико так же, как и кол-во неопределившихся в типе МК и языке программирования. В то же время "насаждать" свое мировозрение в этом вопросе не самое лучшее дело. Человек сам должен выбрать, что ему подходит больше. Вот только, все познается в сравнении. И лучше самому провести сравнение, а для этого нужно (опять же самому) "пощупать" всех претендентов на выбор и, очень желательно, начинать делать это с самого начала, шаг за шагом, осваивая азы. Слушать же вечный спор гуру и по нему выбирать - это не совсем разумно.

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

Геннадий

Тема большая, а вопросов много. Можно сказать, что это тупик, однако, мои речи к начинающим: не бойтесь ассемблера. Ассемблер + описание работы МК + Ваше стремление к познанию + Ваше ЗНАНИЕ предмета (поставленной задачи) - всё осилят!

Вот в 1995 году поступило интересное предложение по поводу записи диспетчерских переговоров, но при одном условии – система должна быть ’закрытой’, т.е. никто и никогда, даже зная работу с винчестером, не смог бы редактировать, изменять… и т.д. эти записи, она должна иметь минимальное время на восстановление после завершения аварийной ситуации.

PC тогда были 486-100МГц, а требования по скорости обмена с периферией большие (Интернета-нет, MSDNа-нет – один только интерактивный дизассемблер). Windows тогда была закрыта и очень даже круто. В то время многие даже не знали, что есть три режима процессора (начиная с 286): совместимости с DOS(обыкновенный 8086), виртуальный режим (в котором запускаются обыкновенные DOS приложения) и защищенный режим – в котором система занимает 0 кольцо, а затем всех контролирует через доступные механизмы (0 кольцо -PC превращается в обыкновенный МК (но уже Макро Контроллер))(давно этим не занимался, что-то, может быть и упустил!). Си и Паскаль тогда этим делом не занимались, а лишь предоставляли убогие интерфейсы VCPI и DPMI. Зато инфы на дисках и собственного дизассемблирования хватало для построения системы.

Короче, за полгода была написана операционная среда без Си и Паскаля! – всё и GUI (в том числе) как в Windows 3.1 – на ассемблере. Но PC стал контроллером!

Это закидуха тем, кто думает, что в этом мире всего хватает (в том числе и сторонних библиотек) для того, чтобы они сделали то, чего хотят!

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

Не думал, что сразу отвечу на вопрос о многообразии PC в 1995г.(каждый волен выбирать, что ему нравится!)

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

И ещё... Вы не дослушались(не дочитались) до того, что я ещё не сообщил(или не сказал)!

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

Поскольку далеко зашёл от первоначальных планов, могу рассказать, чем ЯВУ отличаются от Ассемблера.

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

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

... могу рассказать, чем ЯВУ отличаются от Ассемблера.

ЯВУ подменяют интеллект программиста на собственный интеллект - понятия и собственный 'размышлизм'. ..

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

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

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

Это не бред, а попробуйте пристыковать CodeVision,например, к своему коду...

Единственное, что Вы можете пристыковать к своему коду - разработки программистов , таких как Jack Tidwell...

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

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

Вот пример:

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

Режим пониженного энергопотребления не конфигурировался, а в коде была такая последовательность:

Метка1:

      Sleep

      Rjmp Метка1

Примеров отрицательных много, всех не перечислить. Правда это делается заметно только после дизассемблирования. Что только не "вытворяет" процессор, чтобы получить смещение на адрес переменной в ОЗУ, для ее чтения или модификации (записи/перезаписи). Хотя ее адрес есть значение постоянное и достаточно выполнить в ассемблере одну команду: sts(lds) адрес,данные, язык высокого уровня "пойтить на такие дела" не может, ведь он высокого уровня, да еще и с интеллектом.  :) Вот и начинается вычисление текущего адреса в теле программы, сложение/вычитания непонятных констант, перенос пар регистров туда-сюда и тд. В итоге процессор получает смещение и адресуется к ячейке через косвенную адресацию. А потом катастрофически не хватает размера флешь, для не очень большой, казалось бы, программы. Вот поэтому, я лично, выбрал Ассемблер, чтобы иметь возможность "управлять" программой ПО СВОЕМУ усмотрению, а не полагаться на библиотеку, написанную кем то, да еще не совсем удачно.

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

Геннадий

Я рад за Вас - тема большая, а истина одна-тяжело начало,а результат победа!

Полемика

Быстрый Ассемблер - это то, к чему я Вас пытаюсь подвести через материал (Вам неизвестный)...

, но вскоре доступный(mega)

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

  • 2 недели спустя...
  • 1 месяц спустя...
  • 4 недели спустя...

Проблема заключается в то, что Путаница в вопросах ЯВУ(ЯзыкахВысокогоУровня) возникла из-за “рекламы” Си-подобных языков - об их ”всеядности” и всемогущей переносимости.

Однако для ЕmbeddedSystem (ВнедряемыхСистем – по-русски-микроконтроллеров для управления и т.д.) – это полный абсурд! Посудите сами – порт G mega128 имеет аналог в Pic?, ADSP…???

Задумайтесь! - и не гоняйтесь за “универсальным лекарством”. Тут требуется кое-что другое.

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

  • 2 недели спустя...
Дальнейшее продолжение Object Pascal - OBERON(Никлаус Вирт и его последователи) - он доступен в понимании и его описание есть на многих русско-язычных сайтах(engl даже для ARM7(2005)). OBERON набирает обороты, а Delphi - это отряд без командира...

)

Продолжение следует...

У меня есть компилятор Oberon-07 для AVR от ETH (Оберон-07 это упрощенная версия оберона).

Он рабочий, компилит/линкует.

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

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

  • 4 недели спустя...

писал на ассемблере, потом перешел на Си

знание асма хорошее подспорье - понимаешь во что транслируется Сишный код.

однако писать большие проекты на ассемблере я не хочу

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

  • 3 недели спустя...

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

Классы позволяют абстрагироваться от подробностей реализации алгоритмов сложных структур данных. Следует акцентировать внимание на наличие шаблонов и перегрузки оператора. Первый позволяет программисту не реализовывать многократно классы и подпрограммы для обработки различных типов данных, а лишь 1 раз описать их шаблон. Перегрузка оператора позволяет сделать код пользователя, использующий класс с данным оператором, наиболее наглядным, понятным и понимаемым с первого раза. Она позволяет с лёгкостью проводить манипуляции со сложными типами данных на абстрактном уровне, не прибегая к вызову подпрограмм, уменьшающих наглядность. К примеру, лучше записать умножение 2-х матриц A и B неопределённой размерности в виде С=A*B, чем MatrixMult(C,A,B,n1,n2,n3), n1, n2, n3 – размерности матриц C, A, B.

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

Классы - это наглядность и простота.

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

И чем это математика отличается от одного МК к другому? Кто же мешает описать один раз алгоритм и вызывать его многократно, передавая параметры через регистры?

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

  • 2 недели спустя...

Все зависит от задачи. Если нужно много математических операций (сложение, умножение, синусы, логарифмы, матрицы, векторы и т.п.)тогда лучше использовать С, так как там все это уже реализовано и не придется писать свои алгоритмы, которые далеко не всегда хотя бы работают (я уж не говорю - быстро). А если нужно общение контроллера с другими устройствами (датчики, внешняя память, компьютер, дисплеи) или высокая скорость обработки данных, то Ассемблер несомненно лучше. Где-то проскальзывала прикидка, что Ассемблер вчетверо быстрее С. Вообще, неплохо знать оба языка и выбирать в зависимости от задачи.

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

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

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

  • 3 недели спустя...

Пишу на ассемблере,на днях попробовал си мое мнение ассемблер намного понятнее там что написал то и получил а Си больше походит на магию,одни указатели чего стоят, а на ассемблере это всего лишь команда ldd.

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

  • 3 недели спустя...

Пишу на ассемблере,на днях попробовал си мое мнение ассемблер намного понятнее там что написал то и получил а Си больше походит на магию,одни указатели чего стоят, а на ассемблере это всего лишь команда ldd.

ИМХО:

Согласен.Как работать с указателями тяжело понять (покрайней мере я на СИ уходил тоже с асма и не сразу врубился, как их использовать), но когда разберетесь, то от их использования за уши не оттащишь. :D

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

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

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

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

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

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

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

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

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

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

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

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

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