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

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

Реклама: АО КОМПЭЛ, ИНН: 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 пользователей онлайн

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

  • Сообщения

    • Шота дохрена. Это если мультик может на килогерце. Обычно нет, предел 400 Гц.
    • Да, сначала был написан бутлодер для тини 24. Там нет выделенной памяти под бутлодер и заморочек с областями откуда можно записывать и перезаписывать флеш из программы, там все просто! Также там нет УАРТА, пришлось написать. Ну и самое главное: перезаписывай любые страницы флеш из любого места! В тини 24 под бутлодер ушло 48% памяти. В проекте технологи выделили слишком мало физического места под схему. Потом развел плату, оказалось, что места не так уж и мало. Потом выяснилось, что пинов впритык, и если будет дальнейшее расширение, их может не хватить. И после долгих (ну очень долгих) изысканий (цена, доступность, размеры) остановился на 88 (очень низкая цена, корпус чуть больше чем у 24, датчик температуры, а это важно, но не критически). Да, и сейчас все программируют на С и др. языках высокого уровня, что занимает очень (ну очень) много места, и чипы с небольшой памятью остаются не востребованы, и как следствие низкий спрос, и низкая цена!!! И при тупом переносе программы перезаписи страниц флеш программа не заработала... Ну и пошли изыскания, и я набрел на ВАШ проект, самый полный и законченный на то время. Нужно было выяснить чип который был у меня битый или я что-то упустил при программировании? (в бутлодерах я новичек) Недостаток 88 на сегодня, то что из пользовательской памяти нельзя перепрограммировать флеш, хотя страница стирается.   По поводу ВАШЕЙ программы: выяснилось, что при включенном фьюзе WDT в конфигурации, соединение не устанавливается, а в хелпе это не отражено. В некоторых ситуациях соединение можно восстановить лишь отключив / включив питание, сброс через ножку ресет не помагает. Будем копать дальше,... и глубже....!   Иногда при "установить соединение" выдается сообщение, "соединение не установлено", а на осциллографе виден ответ с чипа?
    • Сейчас по входу стоит керамика 0,1 мкФ + электролит 220 мкФ, иголок вроде нет, ну во всяком случае старичек С1-93 их не показывает.
    • Платы материнки и УВ пока в брак.  - Семён Семёныч... (с) Вы ничего не забыли, сэр? Как вы собрались регулировать УВ по уровню выходного сигнала??? Решение уже есть, пока в процессе. Вот так оно лучше работает.
    • Ну в идеале каптоновым скотчем как вам сказали,но можно обмотать чем угодно лижбе диалектриком было и хотябы немного высокотемпературное,я бы термо усадку взял,поидеи хорошо пойдет  Ещё видел где трансформатор медно алюминиевой жилой был на ампер 10 если не больше на вид аж,и там алюминиевая обмотка сечением пол сантиметра была замотана в бумагу пропитанную в воске,слоем миллиметр примерно эта изоляция была 
    • Всем привет. Собрал мх50, запустился с первого раза, когда делал замеры, соскочил щуп, спалил выходники и пред, заменил, все ок. Питание тор 250 ватт 30х2 выход, после выпрямителя 44В 20000мкф в плечо  увеличил входные емкости на оконечниках, добавил шунтирующую пленку  плата софт старта присутсвует цепь буше взял из ОМ2.7 ТП выставил 100мА добавлена термозащита на каждый канал( но как оказалось, с таким корпусом хрен перегреешь) АС kef q150 dac Aiyima a5 max получилось снять 81 ватт с канала при 8ом нагрузке (на фото самое точное измерение на левом мультиметре) без сигнала если прислонится к ас еле уловимое шипение  при наличии сигнала все ок, играет отлично, мне очень понравилось. в планах ОМ2.7
    • Уже 52 скачивания. Значит актуальна.
  • Похожий контент

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