Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Тема закрыта

PIC vs AVR

Вс апр 23, 2006 20:45:36

такая избитая тема, и в конце каждой теме читаю мат, а потом кому что нравится... а потом неделя раздумья (по крайне мере была) действительно что лучше?
наткнулся на книгу Голубцова авр от простого к сложному, там без мата написаны преимущества:
1.очень быстрая гарвардская архитектура... отсутствует внутреннее деление частоты, как, например МК PIC
...
n. мк АВР имею 32 регистра, все из которых напрямую работают с АЛУ. Это значительно уменьшает размер программ. В других мк, как правило, для осуществления, например, сложения один из регистров обязательно должен находится в рабочем регистре - аккумуляторе... т.е. для сложения нужно выполнить как минимум две команды. (сокращено мною)
n+1. нет страниц памяти!!!
n+2. простой программатор

но в этой книжке в основном одни недостатки... Прошу тех кто программит на АВР сказать недостатки... они есть и скрывать не надо

Пн апр 24, 2006 09:13:03

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

Пн апр 24, 2006 13:27:52

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

Пн апр 24, 2006 14:42:41

xelos писал(а):я работаю и с теми и другими (2 модели в основном пользую: pic16F и AtMega). с точки зрения программирования - одно и то же (я на С пишу). с точки зрения функциональности - очень похоже, вобщем я разницы большой не ощущаю.
оба мк стабильны в работе, нареканий нет.
А раз нету разницы, можно выбрать или те, или другие. Понравилось слово "PIC", работаем с ним. Мне лично больше AVR нравится :)

Пн апр 24, 2006 22:23:02

Доброго времени суток...
Прошу прощения если офф-топ...
Когда-то отец мне объяснял что нет ничего универсального, например клей. Есть клей "Секунда", который клеет почти всё, но недостаточно пластичен, есть "ПВА" добавив в который мелкие опилки получаем отличную древесную шпаклёвку, есть "Момент" гибкий после высыхания, и т.д. Каждый хорошь для чего-то определённого.
Я пологаю если бы небыло никаких отличий между АВР и ПИК, то и книги для них разные не писали...
Давайте возмём курс обсуждения для чего кто хорош, а кто плох...
Желательно используя такие абороты как: "Сделал устройство на ПИК, плохо, а вот когда на АВР переделал всё отлично"...
Всего доброго...

Пн апр 24, 2006 22:38:17

про универсальность никто не говорит... спрашивается что лучше?
АЦП 10 разрядов и там и там есть... где лучше?
УСАРТ и там и там есть... где лучше???
команд для авр больше чем для пиков...на производительность сильно влияет или нет?

где лучше применять пики где АВР??

Пн апр 24, 2006 22:53:08

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

Пн апр 24, 2006 23:10:12

в AVR большинство команд за 1 машинный цикл выполняется (кроме прерываний и где PC меняется), а в PIC все команды за 4 цикла. Т.е. производительность вроде у AVR больше... только меня производительность никогда не напрягала.

А книги разные - потому что различия в архитектуре есть. Я с разными фирмами-азработчиками работаю, ВСЕ фирмы, что я знаю в своих разработках используют РАЗНЫЕ мк (в смысле не зацикливаются на каком-то одном производители).

Microchip и Atmel - два конкурента все-таки, значит и рынок у них один.

Вт апр 25, 2006 12:27:02

Пишу на Си под оба проца. Напрягает пока тока PIC, заметно тупее и тормознее АВРов. Очень бесит его деление памяти на страницы (банки), и отсутвие стека, как следствие отсутвие нормального malloc() и невозможность рекурсивного вызова фунок.
Но читал много отзывов о ПИКах как о стабильных процах. ХМ. А что АВР не стабилен?

Вт апр 25, 2006 18:32:46

Тута есть что-то: http://www.atmel.ru/Articles/Atmel26.htm

Вт апр 25, 2006 20:53:03

Spider писал(а):Пишу на Си под оба проца. Напрягает пока тока PIC, заметно тупее и тормознее АВРов. Очень бесит его деление памяти на страницы (банки), и отсутвие стека, как следствие отсутвие нормального malloc() и невозможность рекурсивного вызова фунок.
Но читал много отзывов о ПИКах как о стабильных процах. ХМ. А что АВР не стабилен?

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

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

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

ИМХО, это просто все привычка программировать конкретный мк, с точки зрения использования мк в проектах - не это играет главную роль.

Чт июл 13, 2006 16:45:19

"в AVR большинство команд за 1 машинный цикл выполняется (кроме прерываний и где PC меняется), а в PIC все команды за 4 цикла. Т.е. производительность вроде у AVR больше... только меня производительность никогда не напрягала."

На сколько я знаю большинство комнд в PIC выполняется за 1 цикл, а некоторые за два. Назови команды которые за 4 цикла проходят!

Чт июл 13, 2006 19:06:52

за 4 такта кварца у пиков и за 1 такт у AVR, имелось ввиду. извиняюсь.

Пт июл 14, 2006 10:04:25

Тогда разница выходит только в частоте кварца. На PIC в 4 раза быстрее надо, это не принципиально.

Вс июл 16, 2006 14:15:03

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

AVR "круче", PIC "проще"

Вс авг 13, 2006 07:47:40

Лично для меня, хотя AVR за те же деньги заметно мощнее по всем измеримым характеристикам (производительность, память и т.п.), чем PIC, есть один фактор, из-за которого PIC нравится субъективно больше.

Все очень просто - средства разработки. Если писать на C, и быть готовым тщательно трахаться с наследственными неприятностями WinAVR (все-таки gcc - это "обычный" компилятор, и о микроконтроллерах он ничего не знает, и на этой почве там столько грабель раскидано...), или подобрать другой компилятор, то разница не видна, или видна, но в пользу AVR. В целом, если задача решается "грубой силой" (не нужно считать такты, хитро играться с прерываниями, делать какие-то сильно-машинно-зависимые вещи), то, пожалуй, AVR вполне оптимален.

Но учить его ассемблер моя тонкая душа поэта отказывается. Он слишком объемный, придуманный странными людьми со странными целями (неоднократно читал, что одной из существенных задач при разработке системы команд было упростить работу компиляторам с C - надо же додуматься!). И даташиты Atmel пишет заметно хуже - плохие писатели работают. Информация не с точки зрения использования, а как придется - в итоге ради пустяка приходится читать десятки страниц.

А у PIC команд мало, они запоминаются за полчаса полностью, со всеми деталями использования, скорость выполнения идеально одинаковая - короче, мечта... И даташиты образцовые. И мнемоники запоминаются лучше. Вообще, видно, что люди думали не только о самой железке, но и о том, что ее придется кому-то осваивать ;)

И софта, который _удобно_ работает с PIC (среды разработки, языки, отладчики, эмуляторы), заметно больше - он, как я понимаю, постарше будет, вот и успели расплодиться хорошие и разные софтины ;) А на AVR как пришли пара крупных (платный и бесплатный) компилятора с C, так все остальные и живут на ролях бедных родственников...

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

Пн авг 21, 2006 13:28:24

пару слов окомандах
Ведь в avr кажется что больше команд но они немного туповаты. особенно команды установки исброса битов в регистре состояния, в портах, и т.д для каждого бита своя команда и ее нада запоминать а пиках по сути две bsf и bcf. тоже касается переходов переход если бит с регистра sreg сброшен установле и другиз битов дужа много команд. в пика две btfss и btfsc
Тема закрыта