upc2 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Всем добрый день! Недавно начал осваивать микроконтроллеры фирмы ATMEL. Первое с чем имел дело - AT90S2313, теперь перешёл на ATmega. Проэкты в основном небольшие (думаю это времено), пользуюсь AVR Studio. Язык, который использую - assembler. Часто посещаю форум, и особо часто попадаю на программы написанные на С. Так вот, хочу задать вопрос всем, кто чувствует себя уже уверенными пользователями обоих языков, вы не могли бы обьяснить начинающему: 1. почему люди переходят с assemblera на C? 2. какие плюсы и минусы языка С? 3. где без языка С нельзя обойтись? 4. лично ваше мнение относительно обоих? (ненормативная лексика принимается:-) Всем, кто отзовется, заранее благодарен! Хорошо , что вы уже задумались. Значит сами до всего дойдете. Программировать контроллеры Siemens можно на 9 языках. Вот здесь бы не запутаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima34 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба осмысленные действия уже через полчаса после File->New (примерно столько нужно на прочтение документации по нужному периферийному модулю, например - портам, если хотим мигать светодиодом). Значит при переходи с одного семейства к другому, при использовании С, минимум необходимо будет знать основые параметры, указаные на первой странице даташита,(по ним прикидывать возможность использования данного контроллера в проэкте), а при необходимости, если ничего не получается :smile3046: , лезть глубже? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaD 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Kalin@ смелее переходите на Си. Я уже мигаю светодиодами. Скачай WinAVR для Си, он поддерживается в AVRStudio последней версии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 136 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Значит при переходи с одного семейства к другому, при использовании С, минимум необходимо будет знать основые параметры, указаные на первой странице даташита,Ну не только на первой странице, а хотя бы прочитать - какие регистры есть у интересующего нас периферийного модуля, что туда надо записать и что оттуда можно прочитать. В остальном все верно. Программировать контроллеры Siemens можно на 9 языках. Вот здесь бы не запутаться."Настоящие программисты пишут на Фортране на любом языке" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба "Настоящие программисты пишут на Фортране на любом языке" Перефразируя эту классическую фразу - "Настоящие эмбеддеры пишут на ASM на любом языке" и это к сожалению совсем не весело :(. По нынешним временам я бы предпочел работать с человеком который начинал с высокоуровневых языков. Ну а ASM уже потом от уровня "читаю и перевожу со словарем" можно при необходимости продвигать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Перефразируя эту классическую фразу - "Настоящие эмбеддеры пишут на ASM на любом языке" и это к сожалению совсем не весело :(. По нынешним временам я бы предпочел работать с человеком который начинал с высокоуровневых языков. Ну а ASM уже потом от уровня "читаю и перевожу со словарем" можно при необходимости продвигать. 10-я возможность Сиеменсов утилита Prodave предоставляющая все возможности управления контроллером для любого высокоуровнего языка в DLL-библиотеках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima34 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Я уже мигаю светодиодами А слабо на С для меги8 реализовать измеритель скорости движения авто, управлением шаговым двигателем указателя стрелки, выводом на ЖКИ, обработку аварийных ситуаций и это всё в реальном времени. Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 136 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!! Вот и объясняйте теперь - какая вам разница, записаны в остальные 6К флеша 0xFFFF или какие-то другие байты? При примерно одинаковом уровне владения С и АСМ одна и та же задача на С реализуется в несколько раз быстрее, чем на АСМ. Вот сэкономленное время я знаю куда деть, а сэкономленые 6К - ума не приложу... У меня был один проект, когда довольно большой кусок кода в дополнение к загрузчику надо было впихнуть в 2К область загрузчика. Код (и код загрузчика тоже) был за неделю написан и отлажен на всех 8К на С, потом были взяты ассемблерные файлы после компилятора и ужаты вручную. Ужимание заняло еще неделю. Я не представляю, сколько бы я писал это на ассемблере с нуля. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima34 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Я не представляю, сколько бы я писал это на ассемблере с нуля. Вы абсолютно правы. Проэкт, о котором я писал, сделали два человека, я и мой друг. Мы разделили его на две части. На это всё ушло около 6 месяцев. Самое трудное было при совмещении блоков. Мы уйму времени тратили для того, чтобы устранять "глюки". Приходилось отслеживать каждый регистр, даже байты в ОЗУ пересекались. Но теперь я для себе вынес один урок - если алгоритм составлен правильно, программа ВНИМАТЕЛЬНО!!!! написана, значит она будет работать с первой компиляции. Или, как говорят, правильно собраная схема в настройке не нуждается. С одной стороны на С возможно писать было бы быстрее, легче( если бы я её знал :) ) но я почему-то ИМХО я бы не добился той точности и быстродействия, что требовалась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Но сама фишка заключается в том, чтобы уместить всё это в 2 кБ!!!!!!!!!!! Нет, "сама фишка" в сравнении стомости чипа сего девайса со стоимостью автомобиля. И стоимостью шести месяцев работы двух человек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Проэкт, о котором я писал, сделали два человека, я и мой друг. Мы разделили его на две части. На это всё ушло около 6 месяцев. Наверное я чего то недопонимаю но 2Кбайта 6месяцев и еще на 2их ??? то есть, примерно 250 человекодней 2Кб <=> =<1024 команды на асм то есть вы писали не более 4асемблерных команд за день ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dima34 0 5 марта, 2008 Опубликовано 5 марта, 2008 (изменено) · Жалоба Наверное я чего то недопонимаю Сейчас я вам объясню, и вам всё станет понятно. 1. Разработка, которой мы занимаемся, первая в нашей практике, мы недавно только дипломы защитили :). Сами же выступали в роли ведущих, так как начальника, который бы мог нас направить или нам помочь у нас не было. 2. Всё что нам предоставили на рабочем месте - это один компьютер на двоих, STK-500, осцилограф, паяльник и доступ в интернет. 3. По образованию мы радиотехники, и такая вещь как программирование МК было всего лишь нашим хобби в институте. Зная архитектуру атмела, его систему команд и ассемблер сложность состояла в написании алгоритмов и понимании функционирования всего устройства. 4. Эти 6 месяцев для нас скорее всего были временем показать, что мы справимся с разработкой, короче как испытательный срок ! то есть, примерно 250 человекодней 2Кб <=> =<1024 команды на асм то есть вы писали не более 4асемблерных команд за день ? 5. Интересно, а сами вы пользуетесь таким методом подсчёта? P.S. ИМХО есть ещё одно преимущество С, для неё написано много библиотек, или просто я плохо искал *.аsm ? Изменено 5 марта, 2008 пользователем Kalina Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Сейчас я вам объясню, и вам всё станет понятно. 1. Разработка, которой мы занимаемся, первая в нашей практике, мы недавно только дипломы защитили :). Сами же выступали в роли ведущих, так как начальника, который бы мог нас направить или нам помочь у нас не было. ............................ Ну, тогда все объяснимо и понятно, просто у Вас прозвучала фраза "а слабо ли уместить в 2Кб......." , которая не очень вяжется с Вашим нынешним объяснением... Учитывая Ваше объяснение, могу предположить что и на С можно влезть в те же 2К. 5. Интересно, а сами вы пользуетесь таким методом подсчёта?Нет конечно, но просто есть какие то разумные рамки, а те сроки которые указали Вы по крайней мере на порядок отличаются от реальных. P.S. ИМХО есть ещё одно преимущество С, для неё написано много библиотек, или просто я плохо искал *.аsm ?для асм есть много чего, только в большенстве случаев это просто не оправдано, хотя конечно есть некоторый процент задач где без асм никуда... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaD 0 6 марта, 2008 Опубликовано 6 марта, 2008 · Жалоба С одной стороны на С возможно писать было бы быстрее, легче( если бы я её знал :) ) но я почему-то ИМХО я бы не добился той точности и быстродействия, что требовалась. Вот именно, легче и быстрее, если владеть асмом и Си одинаково. А вот по поводу точности --- готов поспорить. Вам ведь известно, что такое токоизмерительные клещи!!! Так вот, точность измерения тока 2%. Диапазон - 600А. При этом они сами калибруются (без всяких там подстроечников), и тоже обрабатывают кучу информации, TRMS, есть ЖКИ. Код на Си занимает 12 КБ!!!!!! Время от начала разработки до полного завершения прибора -- 3мес. Так на асме быстрее будет? Просто я вот к чему веду. При переходе к созданию все более и более серьезных проектов, переход с асма на Си просто необходим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mart-13 0 6 марта, 2008 Опубликовано 6 марта, 2008 · Жалоба Вот именно, легче и быстрее, если владеть асмом и Си одинаково. А вот по поводу точности --- готов поспорить. Вам ведь известно, что такое токоизмерительные клещи!!! Так вот, точность измерения тока 2%. Диапазон - 600А. При этом они сами калибруются (без всяких там подстроечников), и тоже обрабатывают кучу информации, TRMS, есть ЖКИ. Код на Си занимает 12 КБ!!!!!! Время от начала разработки до полного завершения прибора -- 3мес. Так на асме быстрее будет? Просто я вот к чему веду. При переходе к созданию все более и более серьезных проектов, переход с асма на Си просто необходим. Вы хотите сказать, что точность аппаратного АЦП контроллера, которым по всей видимости Вы измеряете Ваш ток зависит от Вашей программы, или еще хуже от языка, на котором она написана????? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться