На чем писать  

542 пользователя проголосовало

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

    • Assembler
      148
    • C
      277
    • Что-то еще
      56


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

Jozef    0

Извечный вопрос не дает покоя. Кто и на чем все же предпочитает вести работу с контроллерами?

Лично я как научился работать на С, так и не могу перейти на Assembler, да и не очень то хочется это делать.

Какие все же преимущества и недостатки, окромя понятности и не очень понятности?

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


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

На ассемблере)

Еще пытаюсь перейти на Ц, но ассемблер все же знать нужно.

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

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


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

Си не перевариваю на генетическом уровне... :) Asm, только asm.

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


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

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

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


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

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

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


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

А чем в этом случае асм хуже? Сложностью?

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


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

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

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

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


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

Радуйся, что хоть Си учил в универе. У нас на радиофаке(ННГУ) преподовали фортран :blink: и Tex с MatLab(Хоть на этом спасибо...). :(:(:(

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


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

Раньше писал на асемблере для PIC16F84, а сейчас переключился на AVR и изучаю Си

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


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

Вот я как раз и пишу, что я учу в универе (ПГУ) именно Фортран. А на упомянутом предприятии подрабатываю (все равно стипуху пропарил :) ), причем далеко не программистом.

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

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


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

Zer, Полностью вас поддерживаю и не перевариваю си,это не язык ,такое ощущение что его придумали чтоб выпендриваться перед теми кто на Васике пишет :)))) да и потому что незнаешь что генерит ,а на асме написал и что написал то и будет :) есть ощущение что рычаги у тя в руках а не у компилятора,да и когда делаеться проект который нужно уместить в махонькую память Си не друг :)

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


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

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

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


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

Это понятно что программисту без разницы какой язык.

А вот языку не совсем безразлично.

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

Микроконтроллеры - это немного другая ветвь развития. Вот ядро, вот периферия, вот ОЗУ, вот ПЗУ, вот список команд. По сути это ЭВМ в которой есть простой и понятный доступ ко всему что только можно на самом низком уровне. И никому в голову бы не пришло ещё 10 лет назад делать какие-то компиляторы с верхних языков чтобы писать для ядра программы.

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

Есть только небольшое "но". Это всё расхолаживает и опять отдаляет программиста от истинной сути вещей происходящих в кристалле. Программист микроконтроллеров - это не тот программист который Delphi only, к которому все привыкли. Нельзя быть программистом только верхних языков чтобы сесть и писать для МК какие-то глобальные приложения. Наоборот можно.

Резюме: пишите на чём хотите. А если хотите быть хозяином положения пишите на языке ядра.

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


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

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

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


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

Я бы не стал так говорить. Язык С появился тогда, когда больших ресурсов не было. И уже тогда, на маленьких машинах типа Корвет на С можно было лепить неплохие вещи, которые на АСМе делались с огромным трудом. Как говаривал Козьма Прутков - нельзя объять необъятное. Если можно написать на С и "гутаришь на энтой мови" - напиши. Написание программы времени займет меньше, чем на АСМе. Но опять же - главное не язык - а возможность написания РАБОТАЮЩЕЙ программы. Одна строка на С, как правило, много строк на АСМе, и зачем трудиться лопатой, когда можно позвать экскаватор. Но косточки на раскопках обметаем кисточкой. "Верхний" программист сможет писать эффективно для микроконтроллеров только тогда, когда будет их знать изнутри, на уровне "железа". А этому учат только электронщиков, но их не учат программировать на С. Нас в далекие 70 годы учили на Фортране, но и машин персональных тогда не было.

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Jozef    0
Zer: Си всё-таки пошел от большого количества системных ресурсов и зажирания програмистов.

Зато дал возможность еще более массового распространения профессии, как и все прочие языки высокого уровня. Как было сказано, двигатель прогресса - это лень. Хотя и приводит это к росту неприспособленности человека.

Между прочим, ЯПВУ пошли задолго до С, так что не на Страуструпа нам бочку катить. Первые языки, конечно, были узко специализированы, взять тот же FORTRAN. Билл Гейтс послужил популяризации программирования, ибо создал Basic, являющийся до сих пор (местами) стартовой площадкой для программистов. Отпала просто серьезная необходимость лезть непосредственно в работу процессора и его окружающих. Прогресс...

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


Ссылка на сообщение
Поделиться на других сайтах
Speccy    3
Отпала просто серьезная необходимость лезть непосредственно в работу процессора и его окружающих.

Процессора и его окружающих - да.

Микроконтроллера и его встроенной периферии - нет.

Если нет серьёзной необходимости лезть, значит есть избыточность, а то что вы делаете на МК может быть сделано на чём то другом, менее избыточном.

Если в приложении подразумевается использование МК, и без него не обойтись, то ИМХО непосредственно лезть в работу ядра придётся так или иначе. Проще это делать на языке ядра.

К слову о том что там "лограифмы и прочие неберущиеся интегралы". Можно подумать что всё это "с неба" падает а не рассчитывается в конечном итоге в том же арифметическом модуле ядра. Которое очень ограниченно в своих возможностях. Классически это только две операции сложение и сдвиг.

Так вот все мат. функции могут быть разложены в ряды, либо затабулированы (по справочнику о Высшей математике). Проблем особых тут не наблюдается. Берем книжку "Полный дизассемблер ПЗУ ZX Spectrum", находим там процедуры относящиеся к встроенному калькулятору, и изучаем. Там довольно внушительные возможности FP вычислений, всё в машинных кодах писано.

  • Одобряю 1

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


Ссылка на сообщение
Поделиться на других сайтах
Zer    551
Зато дал возможность еще более массового распространения профессии, как и все прочие языки высокого уровня. Как было сказано, двигатель прогресса - это лень. Хотя и приводит это к росту неприспособленности человека.

May be, may be...

Я тоже на VB для компа проги пишу, но это уже несерьёзно... <_<

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


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

я вот на бейсике ниразу ничего вобще не писал... пока учился классе в 7-8 немного поизучал си..

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

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

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

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

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


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

Гы АСМ реально рулит Ведь

Ассемблер язык аппоратного уровня и при работе с железом просто не заменим!!! Асм плотнее всего взаимодествует с платформой нежели языки выс уровня

Программа на асме пролучается самая компактная и быстродействующая что не мало важно для микроконтроллеров.

На асме мона написать процедуры функции а потом ими пользоваться как вздумается.

P.S. а Бейсик (уневерсльный символьный код для начинающих) под МК это мазахизм

P.P.S вы исчё на них виндовз поставьте ))

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


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

Basic под МК я ещё не видел... :blink:

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


Ссылка на сообщение
Поделиться на других сайтах
Radan    1
Basic под МК я ещё не видел... :blink:

Вот Basic под AVR: http://www.mcselec.com.

А здесь попытки продвижения в русскоязычной части НЕТа - http://bascomavr.3bb.ru/, http://ledeffects.net/pages/?id=12.

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


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

Виндовз на МК... хм...

МК с объемом Flash 2 Гб, EEPROM 256 Мб и быстродействием 1,5 ГГц? оригинальная была б штука. Особенно если б из его возможностей использовались бы только MSOffice, как обычно бывает :)

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: Kirill Lubinets
      Дано: отладочная плата STM32F303VC, индукционный датчик.

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

      Информация по датчику.
      Индукционный датчик удара, шок сенсор, Arduino может использоваться в проектах на микроконтроллерах (в т.ч. Arduino), в которых нужно следить за уровнем вибрации или подобных механических возмущений. Принцип действия датчика основан на электромагнитной индукции. Движущийся стальной, ферритовый или магнитный сердечник относительно катушки создает в катушке ЭДС, подходящую по амплитуде ударного воздействия на систему. Чувствительный элемент датчика установлен в прозрачный пластиковый параллелепипед для защиты от действий внешней среды.
      Для использования датчика нужно подключить его к Arduino контроллеру или другому микропроцессорному управляющему устройству, подать питание, создать программу для работы с датчиком или использовать готовое решение. На корпусе датчика есть два отверстия, с помощью которых можно жестко закрепить датчик на плоской поверхности. В состоянии покоя напряжение на выходе из датчика около 5 В, при возмущении напряжение на датчике падает пропорционально силе возмущения.
      Индукционный датчик удара, шок сенсор, Arduino имеет один 3-контактный разъем для подключения к контроллеру и питания:
      контакт обозначенный «–» – общий контакт;
      средний контакт – напряжение питания;
      контакт S – аналоговый выходной сигнал датчика.
      Датчик может питаться как от Arduino контроллера (другого микропроцессорного управляющего устройства), так и от внешнего источника питания. Напряжение питания 3,3 – 5 вольт постоянного тока.
      Характеристики:
      принцип действия: индукционный;
      выходной сигнал: аналоговый;
      напряжение питания: 3,3 – 5 вольт постоянного тока;
      размеры: 30 х 18 х 11;
      вес: 2 г.
      Shock.7z
    • Автор: Петр Серёгин
      Здравствуйте, у меня проблема.
      Не программируется ATmega2561-8AU. Программатор USBASP. Микроконтроллер 100% рабочий. Питание и контакты программатора припаяны правильно.
      Что можете посоветовать? 
    • Автор: RIMUS1989i
      Всем здравствуйте! Есть необходимость метирить переменное напряжение от трех источников 220v. И питание получать от них же. (1.) Набросал схемку, будет ли она мерить и с какой точностью? измерять думаю в диапазоне от 150 до 250в. по идее точность будет 0.1 вольт. (2.) Но какие подводные камни я могу поймать? (3.) Или придется еще и операционный усилитель лепить на каждый вход АЦП?

    • Автор: spekky
      Добрый день. Никто не делал такую плату? Показалась очень удобной, но продается только в Украине. Печаток различных адаптеров нашел море, какие-то сделал, но этот совмещает в себе вообще все, что мне надо и очень эстетичен. Или может кто-то может помочь с ее покупкой и пересылом? Развести я такую сам не смогу, хоть и понятно, что достаточно даташитов...
       

    • Автор: Михаил Савин
      Добрый день. Подскажите есть устройство на плате для регулирования дроссельной заслонки от Калины. Довольно специфическое, индивидуальная разработка, аналогов не купить. Основывается на микроконтроллере ATXMEGA128A3U AU 1651. Возможно ли скопировать залитый в него код что бы изготовить данное устройство ? Или это невозможно в принципе ?
  • Сообщения

    • чё орёшь то? не ОБЕСПЕЧИВАЕТ я писал.
    • 4 полностью заряженых акб ли-ион дадут вам 4,2*4=16,8В. Поэтому вам нужен блок питания , который на выходе даст 17В (1. чтобы заряжать АКБ; 2. чтобы при полностью заряженых акб усь питался от блока, а не подсасывал акб). Ток блока питания не менее 3А, чтобы и питать усь и заряжать акб током 1А (при самых плохих раскладах). Естественно, усь должен работать в диапазоне от 3,5*4=14В до 17-18В. Тогда все просто: от БП через диод на усь и от БП через модуль заряда (+балансир) на АКБ, с АКБ через (возможно бмс плату защиты) диод - на усь. Это самый простой вариант без преобразователей и пр. 
    • благодарю, уже что то.
    • Конденсатором C11. Но я его менял в большую сторону и меньше ставил . Меняется только частота фона и всё. Просто у меня нет осциллографа. На ощупь приходится делать. Но на днях возьму осциллограф. Я так понял нужно замерять после дросселя. В чём будет отличие сигнала когда усилитель в резонанс вошёл и нет.
    • наверно надо думать буду питать от 14в батареи 18650 2 а где-то    4 батареи   
    • Действительно на нескольких форумах данный вопрос.  Я не знал где лучше задать вопрос! В принципе вчера только один человек и отвечал по всем форумам Извиняюсь! ir2016j - копир к компьютеру не подключается! Разве только для прошивки через USB разъем.  Первоначально на копире термопленку заменили. Съехала в сторону. Периодически он подвисал и до и после замены . После замены пленки через месяц вообще перестал грузиться. В последние дней 5 (жизни ) включался со счетчиком только с утра. (почему не пойму до сих пор) Блок питания был проверен в первую очередь. Когда копир не запускался а подвисал. На дисплее черный квадрат был и не засвечивался. Питания все 3.3в 5в 24в в норме . Подозрение было на 3.3в небольшая пульсация. в блоке питания стоит два стабилизатора на 5 в оба сигнала отличные. А 3.3в только конденсаторами сглаживаются.  Электролиты еср-метром проверял. Питание осциллографом измерял на предмет пульсации в  плоть до платы управления .  Во время работы и в повисшем состоянии. Копир запустился без платы счетчика! При печати отчетов не было ошибок! Подозреваю они хранятся на плате счетчика. Если не там - исправьте! Несколько раз ставил и снимал счетчик. без счетчика ошибка со счетчиком - не грузится. Решил вставить счетчик в работающий аппарат в спящем режиме. Он запустился но ошибка так и осталась. Затем произвел сброс всех настроек в аппарате и после этого копир начал включаться без проблем!!!!   Завтра поиски продолжу.  Счетчик - одна микросхема FRAM MB85R256 и смд конденсатор. Теоретически можно списать и поставить другую. Микросхема до 200 грн а плата до 2000 стоит.(Нигде в интернете не видел описания такого)  Не знаю - Если ошибка высвечивается в другом таком копире висит номер ее и кнопки меню реагируют или нет? у меня висит copy Еще в  отчете Spec List  позиция OPTYION ROM в сервисной инструкции стоит 32MB у меня - 0 Еще после зависания не добавляются листы в счетчики которые выводятся по нажатию кнопки 123 . Прошить можно - но сомневаюсь что поможет!  Пока думаю! Рассмотрю все советы.