Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.68/269: Рейтинг темы: голосов - 269, средняя оценка - 4.68
Kosym
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 801
1

Муки выбора среды разработки :)

15.06.2010, 11:08. Просмотров 48421. Ответов 71
Метки нет (Все метки)

Я начал плотно ковыряться в программировании контроллеров всего полгода назад. Начинал естественно с АВрстудии и ассемблера. Кое какие тестовые задачки удавалось решать, но когда я уперся в сложные вычисления сразу захотелось соскочить с иглы ассемблера :)
С тех пор перепробовал многое: АлгоритмБилдер, поигрался с Флоукодом, Баском. На каждом писал небольшой проектик. Вот сейчас смотрю продукты от микроэлектроники. Забыл упомянуть компиляторы языка С, но у меня с ним никак не завязываются дружеские отношения (наверное туповат :), вечно какие-то затыки. Или может быть я литературу неправильную читал? Или может быть вообще на С забить? Или всё же надо разбираться в С дальше, а иначе серьёзные проекты будут недостижимы?
В итоге на данный момент остановил свой выбор на баскоме, реализовать текущие задачи с его помощью у меня получается достаточно легко.

Наверняка многие тоже шли такими извилистыми тропками, дайте совет как не сгинуть в пути ))

P.S. Совет нужен по микропаскалю. В примерах везде указан проц мега16, а как указать перекомпилировать под мегу8? В каком месте закопаны настройки проекта?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2010, 11:08
Ответы с готовыми решениями:

Муки с FPGA
Всем привет. Решил вернуться к освоению FPGA, а то моя плата Xilinx Spartan...

Муки выбора
Уже вторую неделю выбираю дочери ноут,:( дочь учится в колледже, на втором...

Муки выбора
Выбираю себе ноутбук между 2 следующими. С одной стороны есть Samsung 350U2B...

Муки выбора
Заморочился сменой монитора хочу Crossover 30Q5 PRO, встал вопрос по поводу...

Терзают муки выбора!)
Доброго времени суток! Выбираю ноутбук для работы (таблицы, текст), выбор пал...

71
ovr pys orm
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 62
02.07.2010, 00:45 41
Цитата Сообщение от Kosym
Я начал плотно ковыряться в программировании контроллеров всего полгода назад. Начинал естественно с АВрстудии и ассемблера. Кое какие тестовые задачки удавалось решать, но когда я уперся в сложные вычисления сразу захотелось соскочить с иглы ассемблера :)
С тех пор перепробовал многое: АлгоритмБилдер, поигрался с Флоукодом, Баском.
Попробуйте CodeVisionAVR и PROTEUS - получите удовольстиве от работы.
0
ovr pys orm
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 62
02.07.2010, 00:46 42
Цитата Сообщение от Otixomdr_1
В симуляторе можно отлаживать подпрограммы, не взаимодействующие с внешними устройствами, а таких мало.
Есть же PROTEUS - там можно в комплексе отлаживать и МК и мехатронику и разные МК в одной системе. Посмотрите примеры к PROTEUS.
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
02.07.2010, 19:32 43
По моему для начала работы с МК АВР лучше нет
Ну если только для начала. Потом все равно (если, конечно, не хотите останавливаться только на мигании диодиком да на построении всяких таймеров для аквариума) придется переходить на Си. Так зачем делать лишнюю работу?

Код
При его использовании нет необходимости глубоко проникать в архитектуру и запоминать назначение всевозможных битов при инициализации периферии (во многих случаях).
Ну да, казалось бы зачем лишние трудности. Зачем что то изучать и вникать. Если можно юзать всякие мастеры и помогайки и будет все в шоколаде. Но это тупиковый путь. Иногда, когда стандартная чужая штука не работает так как надо приходится писать что то самому. Сделать это проще расковыряв чужую прошивку (порой даже на уровне дебага хекса) и вот тут в каждый регистр будешь утыкаться как баран в новые ворота. Лазать в справочники и тупить.

Очень легкая переносимость с кристалла на кристалл.
А с АВР на ПИК? Или с АВР на ЛПС? На Си это можно сделать подправив лишь HAL файл. Разумеется если используется классический Си, а не диалекты вроде CVAVR

А по поводу сложных проектов, то главное не на чем писать, а КАК писать. Оптимизация процессов, пареллилизация, диспетчеризация. Грамотное разделение ресурсов вот куда нужно копать.
0
Геалаг
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 8
03.07.2010, 16:09 44
Когда то, в школе конец 80ых начало 90ых изучал бейсик. Давалось легко, изучал все сам. По книгам, журналам.

Недавно вот решил попробовать на контроллерах в виде хобби. Начал на BASCOM AVR, в принципе ничего сложного. Легко и понятно.
Но скорость на некоторых моих проектах не радует. Попробовал на АБилдер, получается но тяжко както. Си тоже не пошел, в скобках и точках с запятыми запутался. В итоге ушел на FASTAVR, радует что он генерит АСМ файл, можно править и смотреть что там натворили. И по сравнению с BASCOM очень оптимальный код на выходе. Конечно не такая богатая библиотека функций как в BASCOM. Вообщем пока меня устраивает FASTAVR. Жаль только что перестали его поддерживать. Но благодаря ему стал ориентироваться в АСМе более уверенно.
0
omd
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 192
03.07.2010, 17:29 45
А мне нравится работать на С. Ассемблер у AVR больно тягомотный, на элементарное действие с десяток команд. И команд больно много, за сотню. Билдер получше, но была бы у него встроенная математика... Паскаль активно не нравится, больно заумный синтаксис, бесконечные бегин енды раздражают. С здорово повышает производительность труда, плюс существует много примеров и библиотек.
0
R_uro
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
03.07.2010, 17:45 46
Цитата Сообщение от omd
Паскаль активно не нравится, больно заумный синтаксис, бесконечные бегин енды раздражают. .
Если уж у паскаля заумный синтаксис, то что тогда говорить о С, с его закорлючками?
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
03.07.2010, 18:28 47
Цитата Сообщение от R_uro
Цитата Сообщение от omd
Паскаль активно не нравится, больно заумный синтаксис, бесконечные бегин енды раздражают. .
Если уж у паскаля заумный синтаксис, то что тогда говорить о С, с его закорлючками?
Тут видимо имелось ввиду, что писать в паскале много надо буков. Для сравнения:
в паскале

begin

end

в С

{

}

И, кстати, не так уж и мого в С закорючек, как вам кажется. Вот в RegExp закорючек, мама не горюй. Но это уже не ЯП
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
03.07.2010, 19:08 48
=Ассемблер у AVR больно тягомотный, на элементарное действие с десяток команд.=

Хохохо. Попробуй пописать под Пик12 на асме :)))) Вот где ассемблер убойный :))) Там по моему даже сложения нет.

А чем больше команд тем лучше, удобней работать.
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
03.07.2010, 20:44 49
Цитата Сообщение от DY HOTT
Хохохо. Попробуй пописать под Пик12 на асме :)))) Вот где ассемблер убойный :))) Там по моему даже сложения нет.
Ну почему же. Все, что надо, там есть, в том числе и сложение. Базовый 33 команды. В более старших семействах, PIC16, к ним добавлено всего лишь две (35). Все есть, даже работа с битами, их проверка, установка, переходы. И не надо думать, какую команду применять в зависимости от нахождения операнда - они работают одинаково со всеми регистрами, и ОЗУ, и портами, и спецрегистрами - все едино.
А чем больше команд тем лучше, удобней работать.
Фиг там. Если, чтобы переслать байт с места на место, приходится выбирать из кучи команд, делающих то же самое, но в зависимости от того, где этот байт находится - нафиг, нафиг... Хоть я и начинал с 8080, 8048, 8051, и их система команд мне вполне привычна, стоило попробовать команды PIC - и мне они понравились. Просто есть упертые "фанаты AVR", которые ничего другого знать не хотят. Я же использую то, что удобнее, в том числе и PIC, и AVR. Все познается в сравнении, а плеваться на что-то только из за того, что не распробовал - последнее дело.
0
Гарнист
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
04.07.2010, 00:21 50
Цитата Сообщение от SWK
чтобы переслать байт с места на место, приходится выбирать из кучи команд, делающих то же самое, но в зависимости от того, где этот байт находится - нафиг
Тут уже на компилятор взваливается обычно. Взять, к примеру, x86 - там одна пересылка, mov. Кодов при этом - дофига. При трансляции компилятор сам выбирает, что нужно. А если в ступор становится - просит уточнить. Тогда приходится добавлять уточнение, типа byte ptr[eax]...
0
PRS
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 3
04.07.2010, 23:07 51
Цитата Сообщение от SWK
И не надо думать, какую команду применять в зависимости от нахождения операнда - они работают одинаково со всеми регистрами, и ОЗУ, и портами, и спецрегистрами - все едино.
Фиг там. Если, чтобы переслать байт с места на место, приходится выбирать из кучи команд, делающих то же самое, но в зависимости от того, где этот байт находится - нафиг, нафиг... Хоть я и начинал с 8080, 8048, 8051, и их система команд мне вполне привычна, стоило попробовать команды PIC - и мне они понравились. Просто есть упертые "фанаты AVR", которые ничего другого знать не хотят. Я же использую то, что удобнее, в том числе и PIC, и AVR. Все познается в сравнении, а плеваться на что-то только из за того, что не распробовал - последнее дело.
А игрища с регистром W нравятся? Или просто чудный префикс к командам типа f или t (точно уже помню), показывающий куда нужно поместить результат. Наверное, как раз из-за такого шикарного набора команд для пиков так популярны всякие С или паскали.
0
Kotz
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 570
04.07.2010, 23:23 52
Да вряд ли в этом дело. У тех же 51 или TMP87 система команд куда красивше, тем не менее на Си писать как-то более в кайф, чем на асме, особенно, если имеют место вычисления чуть посложней 8-битной арифметики. ;)
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
05.07.2010, 01:05 53
Цитата Сообщение от PRS
А игрища с регистром W нравятся?
Так это же типичный аккумулятор, который есть во всех нормальных процессорах. - Регистр A в 8080 и 8086, они для вас что, тоже - игрища? Ну, назвали его не "А", а "W". Кстати, в тех же 8080 и 8086 и регистр W был (регистр временного хранения, туда помещался второй операнд при операциях с константой, или результат вычисления). Просто он явно в командах не указывался, хотя во многих командах использовался, и в стеке сохранялся автоматом, (вместе c PSW).
А по мне - так наоборот, скорее "игрища" - это когда в AVR типичные функции регистра - аккумулятора раскидали по регистрам "общего назначения", причем неравномерно, сильно обделив, например, первые 16, а в некоторых командах вообще использованы только строго определенные регистры из старшей половины. И все это нужно помнить, с каким регистром какие команды работают, какие нет. Куда проще выделить под аккумулятор один регистр, а все остальные сделать равноправными, как в PIC.
Или просто чудный префикс к командам типа f или t (точно уже помню), показывающий куда нужно поместить результат.
Это вообще очень удачная находка МикроЧипа. Изменив всего лишь один бит в команде, мы или оставляем результат в аккумуляторе, или пересылаем сразу в регистр на место второго операнда. Заметьте, не потратив ни одного лишнего такта, мы сэкономили команду пересылки, которая потребовалась бы, не будь такой возможности.
Наверное, как раз из-за такого шикарного набора команд для пиков так популярны всякие С или паскали.
Я бы сказал иначе: Из за отвратительного, непродуманного и нелогичного набора команд AVR все норовят с самых первых шагов сбежать от них на C или BASIC, лишь бы не морочиться с его ассемблером. А в оправдание выдумывают всякие отговорки, типа "Настоящие программисты пишут только на C !!!".
Интеловский набор команд семейства MCS 51 был прост и логичен. Но ATMEL (возможно, для обхода лицензионных ограничений, или просто в маркетинговых целях) здорово его изуродовал, насовав кучу команд - паразитов, просто часто дублирующих друг друга, но отличающихся в мелочах, которые только морочат голову программистам.
Набор команд PIC содержит все необходимое, в то же время там нет дублирования, все 33 (35) команды, делая каждая свое дело, не конкурируют друг с другом, и не требуют заучивать их сотнями.
0
PRS
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 3
05.07.2010, 01:50 54
Не могу согласиться, что W это тоже самое что и A в х51. Там он именно аккумулятор результатов, а не единственное возможное решение. Как на пике делается аналог @R0-1, @DPTR или простого LOOP? Первые через INDF, второе "элегантно" решается через RETLW k. А loop? Но разве это полноценная замена? Я согласен, что система команд у пика очень проста, но при этом и очень ограничена.
0
ovr pys orm
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 62
05.07.2010, 02:32 55
Вобщем CodeVisionAVR прекрасно подойдет спрашивающему совета.
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
05.07.2010, 02:36 56
Цитата Сообщение от PRS
Я согласен, что система команд у пика очень проста, но при этом и очень ограничена.
Все относительно. Кто-то может скажет, что ему в PIC не хватает набора команд MMX, кому-то может захочется и SSE4...
Для тех задач, для которых предназначены PIC среднего семейства (мне пока PIC16 вполне хватает для хобби), их система команд вполне оптимальна и самодостаточна. В более старших семействах (с PIC17 по PIC30) есть уже и умножение с делением, и встроенный USB, и стек TCP IP, и команды работы со стеком, у некоторых - даже плоская, без банков, организация памяти, и много чего еще. Я же выбираю контроллер под задачи. Пока хватало до Меги 32 и до PIC16F877A. Скоро буду делать центральный контроллер своему роботу - планирую туда пока Meгу 128, если к тому времени не появится у меня что-нибудь аналогичное и недорогое из PIC.
Но мне не нравятся высказывания типа "PICи - ацтой", "ARM - это круто, начинайте сразу с них!", так же как восхваление системы команд AVR. Я в свое время изучал разные микропроцессоры, в том числе и MOTOROLA 6800, и Эпловский (кажется, 6502), и DECовские PDP11, и многие другие, не считая Интеловских. И у меня сложилось определенное мнение, что в системах команд хорошо, а что не очень. Кто - то может начал сразу с ARM, и теперь ничего другого знать не хочет. Я же всегда подходил к проблеме взвешенно, оценивая кучу показателей, и выбирая для себя оптимальное решение. Для кого-то может оптимальным будет что-то другое. Я не делю мир на черное и белое, в отличие от всяких фанатов чего-то одного. Для меня всегда существует множество оттенков. Но когда намечается явный перекос, да еще не особо оправданный, я стараюсь стабилизировать систему, восстанавливая равновесие, обращая внимание на достоинства и недостатки обеих сторон. Конечно, изначально сложилось, что этот сайт посвящен изучению AVR, и здесь преобладают поклонники этой архитектуры. Но это не дает оснований утверждать, что PICи чем - то хуже. И на них делают неплохие вещи, некоторые из которых на AVR сделать невозможно. Аналогично, где - то больше подходят AVR. Но это не значит, что кто-то из них хуже. Просто надо стараться в каждом случае использовать достоинства, по возможности избегая недостатков. А недостатки можно найти у любой архитектуры, и AVR не являются исключением...
0
ovr pys orm
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 62
05.07.2010, 02:49 57
Цитата Сообщение от SWK
планирую туда пока Meгу 128, если к тому времени не появится у меня что-нибудь аналогичное и недорогое из PIC.
Уже появилось ! PIC24
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
05.07.2010, 03:19 58
Цитата Сообщение от ovr pys orm
Цитата Сообщение от SWK
планирую туда пока Meгу 128, если к тому времени не появится у меня что-нибудь аналогичное и недорогое из PIC.
Уже появилось ! PIC24 Откуда ? У меня пока максимум PIC18. Я же лучше знаю, что у меня есть... А что есть в мире - так уже и 32 битное семейство PIC30 выпускается, и документацию по нему я еще в прошлом году скачал.
Я привык ориентироваться только на то, что лежит у меня в коробке. А у меня пока из имеющихся в наличии - по соотношению цена - ресурсы получается максимум Мега 128, и они у меня есть. Кроме того, я решил ограничиться корпусами не более 64 ног. Ломать глаза с мелочью, рассчитанной на автоматизированное производство, не вижу никакого смысла.
Да и более сложные задачи гораздо проще доверить компьютеру.
Вот, сейчас как раз утюжу плату контроллера поворотной платформы (башни) своего робота на PIC16F877A. Ресурсов у него для этого в избытке, а порты по вводу и выводу я нарастил 3 регистрами 74HC595 и одним 74HC165... Что-то с первого раза дорожки плохо перевелись, поторопился бунигу отодрать, пришлось снова повторить утюжок.
0
Kotz
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 570
05.07.2010, 08:31 59
Цитата Сообщение от SWK
Интеловский набор команд семейства MCS 51 был прост и логичен. Но ATMEL (возможно, для обхода лицензионных ограничений, или просто в маркетинговых целях) здорово его изуродовал, насовав кучу команд - паразитов
Чуть уточню. Атмел там ничего не менял. У AT89 система команд интеловская один в один, а AVR делались практически с нуля - кроме техпроцесса, с AT89 у них ничего общего нет.
Касательно среды. Keil для AVR ничего не сделал, а зря. ;) Пользую AVR Studyo, иногда в связке с WinAVR. А творение Паши Гайдука одно время служило программатором - там он действительно удобный ;)
Паша молодец, конечно - в одиночку тянуть такой проект, укладываться всего в несколько мегабайт, и продавать недорого... пмсм, для начинающих самое то, но рано или поздно с него придётся уходить - слишком много на себя берёт. :)
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
05.07.2010, 10:05 60
Кайло для АВР это было бы мегакруто. Но видимо они поняли, что ниша тут изначально занята студией с иаром и не стали соваться.
0
05.07.2010, 10:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2010, 10:05

iMac 27 - муки выбора
Всем привет! Буду краток: iMac 27 MD 096 ЭКРАН 27", LED, глянцевый ...

Муки выбора CMS
Привет всем! Нужна CMS для развертывания простого...очень простого сайта....

Arduino. Муки выбора
Всем привет! Давно мечтаю создать какое-нибудь устройство. Достаточно давно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru