Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.11.2011, 01:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от 7Fantomas7
|
А если серъезно. То что хорошего в асемблере? За исключением специфических моментов. Так и в "С" вставки можно делать.
Сегодня Меги, а завтра ПИКи, после завтра АРМ или еще чего. И что каждый раз в асемблерах копаться. А "С" он и в африке "С". Лучше за день другой написать на "С" чем неделями ковыряться с асемблером, зная чего там камень делает. Лучше на 1-2$ дороже камень взять если уж так памяти или скорости не хватает.
|
Все Вы правильно говорите, безусловно, в Си проще и быстрей работать, но когда нужно выдержать определенный тайминг и выполнить при этом определенные операции, то на помощь приходит именно ассемблер. Простой пример. Стояла задача сделать цифровой фильтр, а точнее выровнять частотную характеристику датчика с минимальными аппаратными затратами. DSP скажете Вы? Нет, обошлись ATmega48, на которой получился не рекурсивный фильтр 60-го порядка в реальном времени с частотой выборки 2 кГц. На Си вряд ли это удалось бы. Экстрим, но тем не менее. Один раз помучаться, зато ощутимый выигрыш в себестоимости на потоке.
|
|
|
Сказали "Спасибо" alvadep
|
|
|
08.11.2011, 05:04
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Полностью поддерживаю , к тому же не каждый день меняешь типы фирм и контроллеров как перчатки ,если ты конечно не ламер к примеру и не скачешь как козел "только по верхам" не вдаваясь в суть вещей , так что изученного один раз ассемблера для какой-то понравившейся линейки контроллеров хватает на ооо-о-о-очень долгий срок его использования .И про недельные ковыряния с ассемблером - полнейший бред - потому что это самый простой язык контроллеров - конретно проще чем "C" на порядок , и нет там никаких подводных бяк как в "С",и сделать можно на нем даже то что иногда на "C" невозможно - а все потому что в ассемблере - команда-исполнил- ,команда -исполнил, ... ну и так далее , все очень одношагово и просто , проще прямо некуда .Для изучения контроллеров идеально четко для понимания их работы .В "C" одна и та же команда может исполниться неизвестно как ,во многих вариантах и не факт что правильно именно так как задумал - это еще и зависит от самой среды где было написано, и порой приходится в оттранслированном из "C" уже в промежуточных его ассемблерных файлах выяснять как какая-то загогулина на "C" себя ведет - обращаю внимание : именно по полученному из него ассемблеру выясняются конкретные грабли написанного на "C" !!! Двойная потеря времени и сил , несмотря на "короткость" строчек проги на этом "C" . Так что мучения и непонятки как раз и начинаются при переходе на "C" ,и возможно точняк могут быть поиски багов и залипух и недельные потому что в "C" эти самые баги и залипухи в явном виде совсем не видны явно , по тексту все точно верно ,к примеру ,а есть мелкая логическая ошибочка , - компилятор в свою очередь тоже это не понял и наворочал кучу своего бестолкового ассемблерного кода какое смог (, и такое кстати по тактам конкретно еще и непросто отследить , по сравнению с написанным исходно на ассемблере ) ну так вот и ни хрена не работает , а сам текст-то верный был - а вот в ассемблере сразу явно видно где не ту команду к примеру написал ,по тактам очень четкая отслежка что где происходит и сколько их там не изменяется при том же тексте но при смене версии среды программирования , как в "C" , и лишних ассемблерных команд компилятор не вставляет по собственной инициативе , сам по себе , в исходный текст написанный на ассемблере - вообще никаких!! -то есть как сам ручками написал так это самое в точности и исполнится ,без лишних телодвижений и танцев с бубном ,факт - а все потому что исходный текст для компилятора уже и так сам по себе на ассемблере написан , то есть проще говоря нету искажения компилятором смысла написанного Вами на ассемблере , к тому же язык-то ассемблер ну самый простейший , отсюда - вывод : а зачем такой лишний геморрой обязательно упереться именно в "C" ? Ради африканистости "C" ? Ради текста на одну треть покороче ? На первых порах ваяния прог для контроллеров "C" не советую , зароетесь в разборках по самые уши и время потеряете и результат его работы в контроллерах далеко не очевиден и совсем не однозначен , зависит от конкретной версии среды , тучи используемых библиотек , которые к тому же сами по себе тоже должны быть безглючными , и так далее .Зачем такой геморрой воевания сразу со всем этим большим хозяйством одновременно , и именно на первых порах освоения контроллеров ? Научитесь сначала на простом и четком для понимания ассемблере все делать , если уж не хватит его или писать простой текст лень вконец замучает то перейдете потом на "C" -так к тому времени пока решите переходить на "C" сами контроллеры уже точно успеете изучить и научитесь ими элементарно управлять .А так получается что пытаетесь заполучить все и обязательно сразу - такого как известно не бывает ,либо все но понемногу , либо если все сразу то возможно получится, но на самом деле мало ,или почти ничего - то есть программер ламер в переводе , ну и еще раз спрашиваю оно Вам это надо если собрались именно основательно изучить понравившийся контроллер ? Вот как-то так мое мнение насчет этого дела познавания контроллеров .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 08.11.2011 в 06:19.
|
|
|
|
08.11.2011, 10:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от alvadep
|
Все Вы правильно говорите, безусловно, в Си проще и быстрей работать, но когда нужно выдержать определенный тайминг и выполнить при этом определенные операции, то на помощь приходит именно ассемблер. Простой пример. Стояла задача сделать цифровой фильтр, а точнее выровнять частотную характеристику датчика с минимальными аппаратными затратами. DSP скажете Вы? Нет, обошлись ATmega48, на которой получился не рекурсивный фильтр 60-го порядка в реальном времени с частотой выборки 2 кГц. На Си вряд ли это удалось бы. Экстрим, но тем не менее. Один раз помучаться, зато ощутимый выигрыш в себестоимости на потоке.
|
И насколько часто возникают подобные задачи? Ведь в зависимости от их количества можно пересмотреть вопрос о выборе типа МК. Ваш пример показывает "экстремальные" возможности, а речь идет о массовости в сериях не изготовления, а сериях заказов. И тут выигрыш во времени разработки может оказаться решающим. Да вы сами не хуже остальных это понимаете.
|
|
|
|
08.11.2011, 10:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от ut1wpr
|
И насколько часто возникают подобные задачи? Ведь в зависимости от их количества можно пересмотреть вопрос о выборе типа МК. Ваш пример показывает "экстремальные" возможности, а речь идет о массовости в сериях не изготовления, а сериях заказов. И тут выигрыш во времени разработки может оказаться решающим. Да вы сами не хуже остальных это понимаете.
|
Не часто, но возникают. Я не предлагаю ”снести винду и работать в DOSе”. Да, пример экстремального использования МК, но для освоения конкретного процессора начинать надо с ассемблера. Опять простой пример, тема “АЦП anmega168”. Если бы человек хоть раз написал программу на ассемблере, то не возникало бы вопросов, почему работает на одном процессоре и не работает на другом. Он бы знал, как получить напряжение, если есть цифровой код с АЦП, а соответственно понимал бы, почему получается ерунда, когда на входе напряжение больше чем опора. А так лучшие умы форума искали, где же он облажался в Си.
По мере освоения ассемблера придет опыт использования МК. В дальнейшем он перейдет на Си, а может и нет, но знание как работает процессор на машинном уровне, ну не как не повредит, а скорее наоборот.
|
|
|
|
08.11.2011, 13:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Чёта вот только ДОС никак не отомрёт. Винде уже 18 лет считай, а например программы для станков все в ДОСе. Дураки? Нет - ДОС хорош как однозадачная среда где доступны все ресурсы и нет приостановок программы потому что системе вздумалось посвопиться.
Каждому овощу свой фрукт; ассемблер помогает изучить структуру аппаратуры контроллера чтобы да, не было потом дурацких вопросов. Он проще, а точнее аскетичнее. "как вывести число на печать?" - спрашивали мы, студенты, нашего преподавателя. "как хотите!" - отвечал он, имея в виду кучу способов. А мы не знали ни одного, нам бы хоть направление надо было указать. Напишите пресловутый "hello, world" на С и объясните кухарке, зачем проект, почему include и как это относится к регистрам контроллера. Говорят, там ещё без стека (а это кто?!) никак.
Начать лучше с ассемблера, если Вы эмбеддер и говорите "микросхема", а не программер, для которого минимальный объект одноплатный компьютер. И потом освоить С.
По поводу задач. Конечно, на ассемблере парсить меню гиморно. Но если ваш контроллер управляет парой шаговиков, измеряет несколько датчиков, поддерживает 1-ware и modbus, и ещё есть юзер с десятком кнопок и экран, который надо регенерировать, то тут лучше на ассембере. Что? "взять платку с АРМом, драйвер шаговиков с SPI отдельно, модуль монитора отдельно"? А на 32-ой меге слабо?
Последний раз редактировалось makakus; 08.11.2011 в 13:27.
|
|
|
|
09.11.2011, 00:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Когдато я стоял на распутье, "С" изучать или асемблер. Благодаря не без известному AVR123 начал изучать "С" и не разу не пожалел. Если кому то на тиньке12 хочется построить межгалактический синхрофазотрон то пущяй и играется асемблером. "С" вообщето наверное придумали юмористы с целью лишения сна и спокойствия асемблерщиков.
ТС рекомендую начинать с "С".
Спорить об преимуществах одного над другим считаю бесперспективным. Война брони и снаряда. На Казусе эта тема пережевана милион раз.
Только вот господа асемблерщики, откройте ТС правду. Правду в том что при переходе на другой камень например на ту же ATMega ему придется начать процес с начала.
|
|
|
|
09.11.2011, 00:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
А вот на сколько тупые инженеры в Siemens и других конторах. Они вообще не знают что есть асемблер и "С", они преступным образом делают програмные коды на LAD и FBD. О ужос. Скоро остановятся все ЧПУ, автоматические линии и т.д.. Они ж не на асемблере. Это произойдет ровно через год, еще Майя предсказали. Нужно срочно позвонить президенту США. Он лично и шаманы индейских племен всех бестолковых програмистов всего мира заставят изучить асемблер.
|
|
|
|
09.11.2011, 00:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от 7Fantomas7
|
откройте ТС правду. Правду в том что при переходе на другой камень например на ту же ATMega ему придется начать процес с начала.
|
открываю правду - врете вы всё ![Очень смешно](images/smilies/icon_veryhappy.gif)
какие усилия нужны при переходе с м8515 на ATMega? ответ - хрен целых, фиг десятых. может добавится АЦП или разнообразный ШИМ
возможно на ATХMega? да, нужно посидеть, но там архитектура другая, ее нужно понять, но ТС пока ATХMega пофиг
LAD и FBD вы смотрели внутри как выглядят? ужос, но не С
|
|
|
|
09.11.2011, 05:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Ну вру так вру. То что мне нужно я и так знаю и никого переубеждать не собираюсь.
Цитата:
|
LAD и FBD вы смотрели внутри как выглядят?
|
Даже в страшном сне не собираюсь. Как то абсолютно фиолетово. Нужно чтоб контролер работал так как мне нужно, он так и работает, а что там в нутри пущяй любопытные и и смотрят.
|
|
|
|
09.11.2011, 10:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
7Fantomas7,
так чё сказать-то хотели? пофлудить захотелось?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:22.
|
|