|
|
|
Микроконтроллеры для начинающих, AVR, PIC, FUJITSU |
|
|
|
Sep 5 2006, 03:07
|
Участник
Группа: Свой
Сообщений: 70
Регистрация: 4-04-06
Из: г. Омск
Пользователь №: 15 777
|
Цитата(Kofey Nik @ Aug 22 2005, 01:35) ПРостите, а где можно надыбать компилятор с Си для MCS-51? Франклин не советуют, избыточный код мол генерирует, советуют Кейл, а даже дем версии на сайте Кейла я не нашел. Есть кряканый, но на китайском языке тот сайт. И вообще, насколько рационально переходить на Си? Работая на Си, практически не зависишь от структуры контроллера. Посмотрел регистры специальных функций и достаточно. Остальное - дело компилятора. Если очень заботит скорость, то прежде чем переходить на ассемблер, лучше глянуть в библиотечные функции. Там обычно есть функции, реализующие особенности контроллера для более быстрого выполнения. Да и структура программы получается гораздо более логичной (для начинающих) при отсутствии оператора goto. Отсюда вывод - переходить стоит!
|
|
|
|
|
Jan 7 2007, 02:43
|
Местный
Группа: Свой
Сообщений: 434
Регистрация: 20-10-04
Пользователь №: 921
|
To SSerge: Ya nachinal s BASIC programmirovat'...eshe v shkole...Tak chto ya - umstvenno otstaliy ??? Nu ne bilo na UKNCshkah i Poiskah togda drugih kompiliatorov... ABIDNO
--------------------
Жизнь не такая долгая, чтобы писать программы на ассемблере...
|
|
|
|
|
Jan 7 2007, 15:20
|
Частый гость
Группа: Новичок
Сообщений: 136
Регистрация: 18-08-06
Из: Novosibirsk
Пользователь №: 19 655
|
Цитата(koziy_mf @ Jan 7 2007, 05:43) To SSerge: Ya nachinal s BASIC programmirovat'...eshe v shkole...Tak chto ya - umstvenno otstaliy ??? Nu ne bilo na UKNCshkah i Poiskah togda drugih kompiliatorov... ABIDNO Ну почему сразу отсталый? Всего лишь оболваненный , как и я кстати, если дословно понимать Дейкстру, это из него цитата в том сообщении. Герр проффессор просто немного сгустил краски, вот у него и получилась такая загогулина - гипербола, т.е. художественное преувеличение. Что же до компиляторов - то их было просто вагон. На PDP под RT-11 были Фортран-4 и Фортран-77, целых два Паскаля, и два С (DECUS-овский и на основе pcc), и даже Кобол был. Вот только дисковых накопителей у УКНЦ не было. А с SCSI-винчестером да с электронным диском, да ещё со скоростным сетевым интерфейсом - вполне можно было работать.
|
|
|
|
|
Apr 2 2007, 12:46
|
Частый гость
Группа: Свой
Сообщений: 106
Регистрация: 27-01-06
Из: г. Ярославль
Пользователь №: 13 686
|
Цитата(Alexandr @ Mar 25 2005, 09:52) Объясню: у PIC-ов слишком оригинальная архитектура, неудачная регистровая система, банки памяти - все это ИМХО конечно. честно говоря, мне то же нравится пиковская архитектура. Хотя может просто потому, что начинал с 51. Вернее даже с 31. Но регигтровая система неудачная - первый раз слышу. Банки памяти - потому что память такая. У АВР она то же есть, но всего 32 регистра вроде. Или около того. Если смотреть 18 серию, там уже попроще с банками. Страниц нет вообще. Кроме того, ечть 24 и dsПики. Сам я начинал с асма. Потому что 10 лет назад не знал о компиляторах. Инета не было, а были 2 книги - одна по однокристалкам 51, второй толмут от микрочипа. Потом перешел на Си. Первое время делал асм вставки. Потом меньше и меньше. Считаю - что переход нужен.
|
|
|
|
|
Mar 27 2008, 10:00
|
Группа: Участник
Сообщений: 10
Регистрация: 25-05-07
Из: SPb
Пользователь №: 27 954
|
Преподаю программирование для микроконтроллеров уже много лет. Пробовали PIC, Fujitsu, MCS51, ARM. Лучше всего для новичков прижился MCS-51. Литературы и методических материалов - море. Для "продвинутых парней" - ARM7. Язык программирования - немного ассемблера для MCS51, для затравки, дальше C. Для ARM7 - только C.
--------------------
|
|
|
|
|
Apr 17 2008, 07:11
|
Группа: Новичок
Сообщений: 1
Регистрация: 17-04-08
Пользователь №: 36 816
|
Цитата(ptolemy @ Mar 27 2008, 13:00) Преподаю программирование для микроконтроллеров уже много лет А где преподаете? Что посоветуете совсем начинающим (речь о радиокружке), есть какие-то очень доступные обучалки? Проблема вот в чем, если с обычной логикой все обычно схватывается на лету, то вот когда речь заходит о микроконтроллерах, то проблема начинается практически сразу на этапе объяснения архитектуры. Помнится в институте у нас были "чемоданы" на которых изучался асм, нет ли чего-нибудь подобного для AVR (PIC)
--------------------
|
|
|
|
|
Apr 17 2008, 13:53
|
Частый гость
Группа: Свой
Сообщений: 82
Регистрация: 6-03-07
Из: Новосибирск, Seattle
Пользователь №: 25 935
|
Цитата(Kofey Nik @ Aug 22 2005, 01:35) Есть кряканый, но на китайском языке тот сайт. Я знаю китайский. Давайте ссылку. ^_^
--------------------
НГТУ, Физико-технический факультет, кафедра Лазерных систем
|
|
|
|
|
Apr 22 2008, 16:13
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993
|
Цитата(john74 @ Apr 17 2008, 11:11) ...Что посоветуете совсем начинающим (речь о радиокружке)... Добрый день! Если позволите, я хотел бы выяснить у Вас в части радиокружка - а какие интересы у радиокружковцев? Я часто советую начинать освоение микроконтроллеров с помощью программ вида FlowCode. Но у меня нет ни опыта преподавания, ни навыков ведения кружков и т.д. То есть я могу ориентироваться только на мнение других. Если Вас не затруднит, был бы признателен за совет практика.
|
|
|
|
Guest_opolo8_*
|
Apr 26 2008, 19:59
|
Guests
|
Хотелось бы освоить программирование контроллеров AVR на языке C++, может кто - нибудь знает какую - нибудь литературу по этой теме? Столкнулся с тем что все примеры для C, и книги которые есть посвящены программированию на C. Хотелось бы узнать как компилятор C, распологает программу в памяти контроллера. Заранее благодарю за ответы( если будут).
|
|
|
|
Guest_opolo8_*
|
Apr 28 2008, 05:31
|
Guests
|
Спасибо за рекомендацию. Для отладки есть плата STK500, так что с этим проблем нет. Ю.А.Шпака просмотрел, надо будет все таки подробно почитать. Но там примеры все на C, в этом и проблема, знаю C++ и не очень хочется разбираться с особенностями C, но похоже что придется. А про память я немного другое имел ввиду, как программа располагается в пространстве памяти? Раньше программировал на ассемблере контроллеры с архитектурой MCS-51, так там все просто так как полностью сам управляешь расположением всей программы в пространстве памяти, а вот в C что то не совсем ясно.
|
|
|
|
|
Apr 28 2008, 07:55
|
Adept
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343
|
Цитата(opolo8 @ Apr 28 2008, 12:31) Спасибо за рекомендацию. Для отладки есть плата STK500, так что с этим проблем нет. Ю.А.Шпака просмотрел, надо будет все таки подробно почитать. Но там примеры все на C, в этом и проблема, знаю C++ и не очень хочется разбираться с особенностями C, но похоже что придется. Если знаете С++, значит, знаете и С, т.к. С является подмножеством С++. Особенностей С, в которых он не совпадает с С++, очень немного - на одной руке пальцев хватит пересчитать. Еще надо обратить внимание на то, какие возможности языка поддерживаются - они, как правило, не все поддерживаются (и это часто оправдано). Например, врядли найдете 8/16-разрядный процессор, компилятор которого поддерживал бы исключения. Но в остальном все вполне пристойно - классы, наследование, полиморфизм, шаблоны, все это на сегодняшний день уже есть. Цитата(opolo8 @ Apr 28 2008, 12:31) А про память я немного другое имел ввиду, как программа располагается в пространстве памяти? Раньше программировал на ассемблере контроллеры с архитектурой MCS-51, так там все просто так как полностью сам управляешь расположением всей программы в пространстве памяти, а вот в C что то не совсем ясно. Все как обычно. И тоже все управляемо. В библиотеке есть функция startup (ее названия у всех платформ свои, но суть одна), которая выполняет инициализацию регистров процессора (указатель стека и др.), а также статическую и динамическую инициализацию, после чего передает управление функции main путем вызова ее. Эта функция (startup) размещается в памяти программ всегда, и ей передается управление при сбросе процессора - т.е. когда процессор стартует с начального адреса (у разных платформ этот адрес тоже свой в силу аппаратных особенностей). Конкретные детали реализации этого - как что размещается и т.д. - надо смотреть документацию на используемую платформу. Как правило данные и код мапятся на именованные сегменты памяти, а сами сегменты размещаются в памяти в соответствии с директивами линкеру, задаваемыми в линкерном скрипте. Обычно пакет поставляется уже в таком виде, что там все как-то настроено по умолчанию, и уже можно начать сразу что-то писать. При желании можно разобраться, что к чему, и "перезаточить" под свои нужды/вкусы.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
Guest_opolo8_*
|
Apr 28 2008, 08:27
|
Guests
|
Болшое спасибо за исчерпывающий ответ. Осталось только разобраться какие классы и функции существуют для работы с контроллерами AVR.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|