На чем писать  

546 пользователей проголосовало

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

    • Assembler
      150
    • C
      278
    • Что-то еще
      57


366 сообщений в этой теме

gvl    1

А по сути “Почему количество просмотров этой ветки так велико?”

Поделиться сообщением


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

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

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

gvl    1

Геннадий

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

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

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

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

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95
... могу рассказать, чем ЯВУ отличаются от Ассемблера.

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

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

  • Не одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

Ещё по поводу бреда - чаще изучайте листинги!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

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

Поделиться сообщением


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

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

Вот пример:

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

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

Метка1:

      Sleep

      Rjmp Метка1

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

Изменено пользователем Геннадий
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

Геннадий

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

Полемика

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Jah    0

Существует ли avr-gcc под DOS или другой компилятор С?

Поделиться сообщением


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

А какой кстати луший редактор программ для ассемблера, мне просто оч нужно чтобы собрать термометр.??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
gvl    1

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

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

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

  • Одобряю 1

Поделиться сообщением


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

)

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

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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Manio    1

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

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

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

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

  • Не одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Borisov_E    1

Да, для микроконтроллеров это жизненно необходимо ! Все в классы !

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    261

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

  • Не одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alexsis    1

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

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1

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

ИМХО:

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

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Kudich
      Всех приветствую!
      Сам я программирую на стандартной среде ардуинки, и в одном проекте потребовалось увеличить частоту ШИМ на портах 5,6,9,10,11,13 Arduino Micro. На этой ардуино стоит Atmega32u4, есть тут знатоки avr? Как повысить частоту на этих пинах?
    • Автор: Evg69
      добрый день. Вернулся к микроконтроллерам после длительного перерыва. Сижу туплю и даже гугл не помог.
      Два вопроса по Atmel Studio 7. Режим отладки. Симуляция.
      1. Как включить окно в котором можно посмотреть что контроллер выплевывает
      в UART? Не содержимое регистра, а типа терминала.
      2. Как подсунуть студии файлик с содержимым EEPROM?
    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Гость Максим
      Автор: Гость Максим
      Всем светлым и умным головам привет!

      Никак не могу найти информацию о данном прерывании TIM1_BRK_UP_TRG_COM.
      Вопрос 1: Что это за стек или система прерываний? 
      Вопрос 2: Когда будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler, если также есть обработчик прерывания TIM1_CC_IRQHandler?
      Вопрос 3: период переполнения таймера равен 100 мкс. Сколько раз будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler до обработчика прерывания TIM1_CC_IRQHandler? По логике вещей, предполагаю, что 100 раз?
      Заранее благодарен!

      Всем радости))