Assembler или С?

Тема в разделе "Микроконтроллеры AVR", создана пользователем iBoy, 18 окт 2016.

  1. iBoy

    iBoy Гик

    Здравствуйте! Помогите, пожалуйста, определиться с языком программирования контроллеров.
    Я участвую в конкурсе (мне 15), и, посмотрев на работы прошлых лет, определил, что как правило проходят те работы по робототехнике, которые сделаны на микроконтроллерах. У меня уже есть проект, сделанный на Ардуино. Это приставка на тренажёр, соединяющая тренировку с компьютерной игрой. То есть, например, вы крутите педали тренажера и от этого двигается вперёд ваш игровой персонаж. Также там реализована система выравнивания пульса, которая заключается в том, что чем вы прикладывайте больше усилий на тренировке, тем персонаж двигается быстрее. Это реализуется с помощью датчика пульса. Система, считывающая вращение педали, основана на датчиках холла. Также там есть интерфейс, где предлагают выбрать уровень сложности тренировки. На изучение языка и реализацию проекта на микроконтроллере есть примерно месяц. Какой язык выбрать: Ассемблер или С и почему?
     
  2. geher

    geher Гуру

    Полагаю, что в данном конкретном случае лучше C/С++.
    Учитывая, что современные компиляторы обычно в процессе автоматической оптимизации порождают вполне эффективный код, использование ассемблера в наше время реально оправдано только в одном случае - необходимость крайне экстремального уровня оптимизации кода под конкретный процессор/микроконтроллер, когда надо выигрывать байты памяти и отдельные такты при исполнении кода.
    При этом программа получается не столь очевидной. При взгляде на код гораздо труднее понять, что именно он делает. Все это осложняет отладку и редактирование кода.
    Собственно говоря, языки высокого уровня и появились, чтобы решить проблему приближения кода к естественному языку, что облегчает написание и понимание текста программы.
     
    iBoy нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Все как обычно.Си компилятры требуют производительные чипы.А вот чтоб в Тини 13 запихать что то стоящее нужен асм.Хотя сейчас идет тотальная миниатюризация и Мега 329 в СМД корпусе имеет размеры Тини13 в ДИП корпусе а возможностей в разы больше!Си походу рулит
     
    iBoy нравится это.
  4. ostrov

    ostrov Гуру

    Тини85 стоит как 13, а памяти в 4 раза больше и глючит меньше. Я 13 вообще не использую давно. А вообще С++ конечно. Да и перспективнее, т.к. сейчас чипы становятся все мощнее, памяти все больше, выигрыш асма в производительности все меньше, а вот времени на разработку приходится отдавать из собственной жизни, которая на вечна.
     
    iBoy нравится это.
  5. Airbus

    Airbus Радиохулиган Модератор

    Дануна?Т-85 хороший камень но явно дороже раза в два.Да и достались мне Т-13 литровая банка.Для простой и тупой логики ВКЛ-ВЫКЛ самое оно!Вот и леплю на них ШИМ регуляторы подсветки IR управление выключатели всех мастей. А вот например сегодняшний случай-надо было сделать "градусник" с LCD. Мегу 8 под это жаль а в тини 2313 не влазит код CVAVR ругается. Пришлось засучив рукава рисовать на асме вспомнил все ругательства но скомпилил и работает. Тут уж не поспоришь что коды посложнее надо писать на сях.
     
    iBoy нравится это.
  6. iBoy

    iBoy Гик

    Спасибо вам огромное!