PIC vs AVR
- Mozart
- Мучитель микросхем
- Сообщения: 413
- Зарегистрирован: Пт мар 10, 2006 12:23:05
- Откуда: Moscow
- Контактная информация:
PIC vs AVR
такая избитая тема, и в конце каждой теме читаю мат, а потом кому что нравится... а потом неделя раздумья (по крайне мере была) действительно что лучше?
наткнулся на книгу Голубцова авр от простого к сложному, там без мата написаны преимущества:
1.очень быстрая гарвардская архитектура... отсутствует внутреннее деление частоты, как, например МК PIC
...
n. мк АВР имею 32 регистра, все из которых напрямую работают с АЛУ. Это значительно уменьшает размер программ. В других мк, как правило, для осуществления, например, сложения один из регистров обязательно должен находится в рабочем регистре - аккумуляторе... т.е. для сложения нужно выполнить как минимум две команды. (сокращено мною)
n+1. нет страниц памяти!!!
n+2. простой программатор
но в этой книжке в основном одни недостатки... Прошу тех кто программит на АВР сказать недостатки... они есть и скрывать не надо
наткнулся на книгу Голубцова авр от простого к сложному, там без мата написаны преимущества:
1.очень быстрая гарвардская архитектура... отсутствует внутреннее деление частоты, как, например МК PIC
...
n. мк АВР имею 32 регистра, все из которых напрямую работают с АЛУ. Это значительно уменьшает размер программ. В других мк, как правило, для осуществления, например, сложения один из регистров обязательно должен находится в рабочем регистре - аккумуляторе... т.е. для сложения нужно выполнить как минимум две команды. (сокращено мною)
n+1. нет страниц памяти!!!
n+2. простой программатор
но в этой книжке в основном одни недостатки... Прошу тех кто программит на АВР сказать недостатки... они есть и скрывать не надо
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
- Реклама
Это война миров, можно сказать. Такое ощущение, что приверженность к тому или иному виду контроллеров получается по принципу: С чем начал работать так и продолжаю... В реальности, людей, кот работают и с тем и другим очень мало, вот их-то и надо спрашивать, ибо только такой человек сможет дать квалифицированый грамотный ответ.
Today fine night...
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
я работаю и с теми и другими (2 модели в основном пользую: pic16F и AtMega). с точки зрения программирования - одно и то же (я на С пишу). с точки зрения функциональности - очень похоже, вобщем я разницы большой не ощущаю.
оба мк стабильны в работе, нареканий нет.
оба мк стабильны в работе, нареканий нет.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
- Дмитрий О
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пн авг 29, 2005 16:27:04
- Откуда: Дмитров
- Контактная информация:
А раз нету разницы, можно выбрать или те, или другие. Понравилось слово "PIC", работаем с ним. Мне лично больше AVR нравитсяxelos писал(а):я работаю и с теми и другими (2 модели в основном пользую: pic16F и AtMega). с точки зрения программирования - одно и то же (я на С пишу). с точки зрения функциональности - очень похоже, вобщем я разницы большой не ощущаю.
оба мк стабильны в работе, нареканий нет.
aka Diamond
- Hardman
- Первый раз сказал Мяу!
- Сообщения: 36
- Зарегистрирован: Вт мар 28, 2006 00:18:21
- Откуда: Москва
- Контактная информация:
Доброго времени суток...
Прошу прощения если офф-топ...
Когда-то отец мне объяснял что нет ничего универсального, например клей. Есть клей "Секунда", который клеет почти всё, но недостаточно пластичен, есть "ПВА" добавив в который мелкие опилки получаем отличную древесную шпаклёвку, есть "Момент" гибкий после высыхания, и т.д. Каждый хорошь для чего-то определённого.
Я пологаю если бы небыло никаких отличий между АВР и ПИК, то и книги для них разные не писали...
Давайте возмём курс обсуждения для чего кто хорош, а кто плох...
Желательно используя такие абороты как: "Сделал устройство на ПИК, плохо, а вот когда на АВР переделал всё отлично"...
Всего доброго...
Прошу прощения если офф-топ...
Когда-то отец мне объяснял что нет ничего универсального, например клей. Есть клей "Секунда", который клеет почти всё, но недостаточно пластичен, есть "ПВА" добавив в который мелкие опилки получаем отличную древесную шпаклёвку, есть "Момент" гибкий после высыхания, и т.д. Каждый хорошь для чего-то определённого.
Я пологаю если бы небыло никаких отличий между АВР и ПИК, то и книги для них разные не писали...
Давайте возмём курс обсуждения для чего кто хорош, а кто плох...
Желательно используя такие абороты как: "Сделал устройство на ПИК, плохо, а вот когда на АВР переделал всё отлично"...
Всего доброго...
- Реклама
- Mozart
- Мучитель микросхем
- Сообщения: 413
- Зарегистрирован: Пт мар 10, 2006 12:23:05
- Откуда: Moscow
- Контактная информация:
про универсальность никто не говорит... спрашивается что лучше?
АЦП 10 разрядов и там и там есть... где лучше?
УСАРТ и там и там есть... где лучше???
команд для авр больше чем для пиков...на производительность сильно влияет или нет?
где лучше применять пики где АВР??
АЦП 10 разрядов и там и там есть... где лучше?
УСАРТ и там и там есть... где лучше???
команд для авр больше чем для пиков...на производительность сильно влияет или нет?
где лучше применять пики где АВР??
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
в AVR большинство команд за 1 машинный цикл выполняется (кроме прерываний и где PC меняется), а в PIC все команды за 4 цикла. Т.е. производительность вроде у AVR больше... только меня производительность никогда не напрягала.
А книги разные - потому что различия в архитектуре есть. Я с разными фирмами-азработчиками работаю, ВСЕ фирмы, что я знаю в своих разработках используют РАЗНЫЕ мк (в смысле не зацикливаются на каком-то одном производители).
Microchip и Atmel - два конкурента все-таки, значит и рынок у них один.
А книги разные - потому что различия в архитектуре есть. Я с разными фирмами-азработчиками работаю, ВСЕ фирмы, что я знаю в своих разработках используют РАЗНЫЕ мк (в смысле не зацикливаются на каком-то одном производители).
Microchip и Atmel - два конкурента все-таки, значит и рынок у них один.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
- Spider
- Опытный кот
- Сообщения: 732
- Зарегистрирован: Чт дек 29, 2005 07:29:25
- Откуда: Омск
- Контактная информация:
Пишу на Си под оба проца. Напрягает пока тока PIC, заметно тупее и тормознее АВРов. Очень бесит его деление памяти на страницы (банки), и отсутвие стека, как следствие отсутвие нормального malloc() и невозможность рекурсивного вызова фунок.
Но читал много отзывов о ПИКах как о стабильных процах. ХМ. А что АВР не стабилен?
Но читал много отзывов о ПИКах как о стабильных процах. ХМ. А что АВР не стабилен?
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
ты конкретные модели тогда сравнивай, у ATtiny, например, стека особо тоже нет. Реализуй его програмно. насчет рекурсивных функций - как часто тебе призодится их реализовывать на мк? к тому ж, если я правильно помню теорию программирования, любую рекурсивную функцию можно реализовать через линейные.Spider писал(а):Пишу на Си под оба проца. Напрягает пока тока PIC, заметно тупее и тормознее АВРов. Очень бесит его деление памяти на страницы (банки), и отсутвие стека, как следствие отсутвие нормального malloc() и невозможность рекурсивного вызова фунок.
Но читал много отзывов о ПИКах как о стабильных процах. ХМ. А что АВР не стабилен?
разбивка памяти на страницы - да, это не всегда удобно для программиста (и то под вопросом - копирование блоков памяти проще делать постранично), у меня нет четкого мнения по этому поводу, к тому ж мой компилятор для PIC сам управляет банками
и насчет malloc, имхо, все зависит от стиля программировния. поскольку стека в обычном понимании в PIC нет, я не вижу зачем тебе использовать malloc для PIC. с этой точки зрения контроль памяти в PIC удобней (не надо думать о том, что своими данными стек затрешь).
ИМХО, это просто все привычка программировать конкретный мк, с точки зрения использования мк в проектах - не это играет главную роль.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
-
Alexl82
"в AVR большинство команд за 1 машинный цикл выполняется (кроме прерываний и где PC меняется), а в PIC все команды за 4 цикла. Т.е. производительность вроде у AVR больше... только меня производительность никогда не напрягала."
На сколько я знаю большинство комнд в PIC выполняется за 1 цикл, а некоторые за два. Назови команды которые за 4 цикла проходят!
На сколько я знаю большинство комнд в PIC выполняется за 1 цикл, а некоторые за два. Назови команды которые за 4 цикла проходят!
-
Alexl82
-
PG
AVR "круче", PIC "проще"
Лично для меня, хотя AVR за те же деньги заметно мощнее по всем измеримым характеристикам (производительность, память и т.п.), чем PIC, есть один фактор, из-за которого PIC нравится субъективно больше.
Все очень просто - средства разработки. Если писать на C, и быть готовым тщательно трахаться с наследственными неприятностями WinAVR (все-таки gcc - это "обычный" компилятор, и о микроконтроллерах он ничего не знает, и на этой почве там столько грабель раскидано...), или подобрать другой компилятор, то разница не видна, или видна, но в пользу AVR. В целом, если задача решается "грубой силой" (не нужно считать такты, хитро играться с прерываниями, делать какие-то сильно-машинно-зависимые вещи), то, пожалуй, AVR вполне оптимален.
Но учить его ассемблер моя тонкая душа поэта отказывается. Он слишком объемный, придуманный странными людьми со странными целями (неоднократно читал, что одной из существенных задач при разработке системы команд было упростить работу компиляторам с C - надо же додуматься!). И даташиты Atmel пишет заметно хуже - плохие писатели работают. Информация не с точки зрения использования, а как придется - в итоге ради пустяка приходится читать десятки страниц.
А у PIC команд мало, они запоминаются за полчаса полностью, со всеми деталями использования, скорость выполнения идеально одинаковая - короче, мечта... И даташиты образцовые. И мнемоники запоминаются лучше. Вообще, видно, что люди думали не только о самой железке, но и о том, что ее придется кому-то осваивать
И софта, который _удобно_ работает с PIC (среды разработки, языки, отладчики, эмуляторы), заметно больше - он, как я понимаю, постарше будет, вот и успели расплодиться хорошие и разные софтины
А на AVR как пришли пара крупных (платный и бесплатный) компилятора с C, так все остальные и живут на ролях бедных родственников...
В итоге PIC, хотя и дороже и не так эффективен по количеству команд на такт и на байт памяти (ну, команды проще - вот их и надо чуть больше на ту же работу), но если писать вручную, на ассемблере - то я выбираю его.
Все очень просто - средства разработки. Если писать на C, и быть готовым тщательно трахаться с наследственными неприятностями WinAVR (все-таки gcc - это "обычный" компилятор, и о микроконтроллерах он ничего не знает, и на этой почве там столько грабель раскидано...), или подобрать другой компилятор, то разница не видна, или видна, но в пользу AVR. В целом, если задача решается "грубой силой" (не нужно считать такты, хитро играться с прерываниями, делать какие-то сильно-машинно-зависимые вещи), то, пожалуй, AVR вполне оптимален.
Но учить его ассемблер моя тонкая душа поэта отказывается. Он слишком объемный, придуманный странными людьми со странными целями (неоднократно читал, что одной из существенных задач при разработке системы команд было упростить работу компиляторам с C - надо же додуматься!). И даташиты Atmel пишет заметно хуже - плохие писатели работают. Информация не с точки зрения использования, а как придется - в итоге ради пустяка приходится читать десятки страниц.
А у PIC команд мало, они запоминаются за полчаса полностью, со всеми деталями использования, скорость выполнения идеально одинаковая - короче, мечта... И даташиты образцовые. И мнемоники запоминаются лучше. Вообще, видно, что люди думали не только о самой железке, но и о том, что ее придется кому-то осваивать
И софта, который _удобно_ работает с PIC (среды разработки, языки, отладчики, эмуляторы), заметно больше - он, как я понимаю, постарше будет, вот и успели расплодиться хорошие и разные софтины
В итоге PIC, хотя и дороже и не так эффективен по количеству команд на такт и на байт памяти (ну, команды проще - вот их и надо чуть больше на ту же работу), но если писать вручную, на ассемблере - то я выбираю его.
-
сергун
пару слов окомандах
Ведь в avr кажется что больше команд но они немного туповаты. особенно команды установки исброса битов в регистре состояния, в портах, и т.д для каждого бита своя команда и ее нада запоминать а пиках по сути две bsf и bcf. тоже касается переходов переход если бит с регистра sreg сброшен установле и другиз битов дужа много команд. в пика две btfss и btfsc
Ведь в avr кажется что больше команд но они немного туповаты. особенно команды установки исброса битов в регистре состояния, в портах, и т.д для каждого бита своя команда и ее нада запоминать а пиках по сути две bsf и bcf. тоже касается переходов переход если бит с регистра sreg сброшен установле и другиз битов дужа много команд. в пика две btfss и btfsc


