Страница 1 из 1

Как начать писать программы для микроконтроллеров ?

Добавлено: Вс мар 20, 2011 19:50:15
brian4ever
Здравствуйте. Заинтересовался микроконтроллерами после того как собрал пару схем одну на PIC16F819, вторую Простые часы на ATTiny2313. Очень понравилось, с простейшими программаторами и прошивкой проблем не возникло, но появилось желание продолжить опыты и самому научится писать программы.

Беда в том, что не могу найти нормальной среды программирования и обучалки по этой среде. Начать хочется с ATtiny2313. Обучалка по AVR на сайте прочитана, и видимо хороша, но понять её и использовать на практике сложно хотя бы потому что AT90s2313 уже не найти и tavrasm уже устарел и не знаю можно ли его использовать с Attiny2313. Знания языков программирования у меня на школьном уровне, простые программки на Паскале, что то помню рисовал на писишном ассемблере, но давно это было.

Посоветуйте с чего сейчас актуально начать, какую среду разработки использовать, и толковый учебник по этой среде.

Лучше разбираться с ассемблером или сразу осваивать С?

Нужны именно азы, настройка среды под микроконтроллер, конфигурация портов, зажечь светодиод, бегуший огонёк, динамическая индикация, управление матрицей на сдвиговых регистрах, опрос клавиатуры, и.т.д.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс мар 20, 2011 19:57:33
anatol378
brian4ever писал(а): Лучше разбираться с ассемблером или сразу осваивать С?
И то и другое + описание на контроллер. Ассемблер - для понимания работы контроллера и задания жестких временных интервалов (пригодится в качестве вставок в сишный код). Си специализированный на серию контроллеров - на других языках тоже можно, но так сложилось что СИ впереди планеты всей и большинство программ пишется на нем. Это как в компьютерах и опереционных системах- законодатель моды. Ну и даташиты и особенности применения - назубок.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс мар 20, 2011 19:59:41
dimm1985
Из опыта, если не планируете строить большие и БЫСТРЫЕ структуры на МК, и в школе паскаль то выбор Си.
Для AVR конечно CodeVisionAVR (CVAVR) там есть codeWizardAVR -мегоудобно но надо англ знать хоть чуть.

В качестве примеров я в свое время юзал my-avr.at.ua просто, без хлама и лишнего текста.
ИМХО

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс мар 20, 2011 20:34:52
brian4ever
Решил я начать разбираться с CodeVisionAVR.

Читаю и пытаюсь повторить простейший урок с my-avr.at.ua, зажигающий светодиод на ATmega8.

Думаю, ничего что у меня есть только ATtiny2313, сначала напишу и скомпилирую пример для ATMega8, потом разберусь и переделаю его под attiny2313 зашью и зажгу светодиод, но не тут то было.

Инструкция гласит.

Подключаем программатор с приставкой(и микросхемой) к LPT порту.
Дальше нам нужно запустить Сode Vision AVR
Settings -> Programmer и выбираем Kanda Systems STK 200+/300 и нажимаем ОК.

дальше нажимаем Tools -> Code Wizard AVR
Chip ATmega8
Clock 8.000000 МHz

нажимаем ОК


Где нажимать OK, если у меня на экране нет такой кнопки?
вот что я вижу:
Изображение
Вы меня извините за такой идиотизм, но я с самого утра не могу выполнить простейших примеров по таким вот идиотским причинам.


UPD: Подумал, может под Seven глючит и кнопку OK не рисует, поставил Сode Vision AVR под XP на виртуальной машине. Кнопка OK не появилась.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс мар 20, 2011 20:56:09
dimm1985
В кодвизарде File -> Generate, Save and exit
Бывает. Причем сохранять надо либо сразу как основной (main.c) вместо того что есть в папке проекта, либо сохранить где угодно но потом зайти в configure project (значек такой с молотком ,отверткой и ключем) add и указать путь к этому файлу.

кстати в кодвизарде есть оч полезная функция file-> code previev, перед тем как сохранить позволяет увидеть код который будет сохранен, или не сохранен.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс мар 20, 2011 22:15:19
brian4ever
А возможно ли код скомпилированный при помощи CodeVisionAVR прошить через avreal в мк ?
Я делаю так: Project/compile затем tools/chip programmer/file/save flash/ сохраняю code.rom, скармливаю его avreal, а он мне выдаёт
Invalid HEX line
'000000:C012"

Что я делаю нитак? Прошить из CodeVisionAVR пока не имею возможности, программатор 7 проводков и 4 резистора, шьёт только из аvreal, обязательно программатор переделаю, но не сегодня.


Поглядел, код сохраняется в текстовом формате а не в hex. Как сохранить hex из CodeVisionAVR?


UPD: ну вот я не безнадёжен. Нашел в папке проекта файл hex, скормил его avreal, включил девайс и светодиод на PD0 весело замигал :)

А в CodeVision можно только на С писать или на ассемблере тоже можно?

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Пн мар 21, 2011 13:34:05
svd71
brian4ever писал(а):А возможно ли код скомпилированный при помощи CodeVisionAVR прошить через avreal в мк ?
Я делаю так: Project/compile затем tools/chip programmer/file/save flash/ сохраняю code.rom, скармливаю его avreal, а он мне выдаёт
Invalid HEX line
'000000:C012"

Что я делаю нитак? Прошить из CodeVisionAVR пока не имею возможности, программатор 7 проводков и 4 резистора, шьёт только из аvreal, обязательно программатор переделаю, но не сегодня.


Поглядел, код сохраняется в текстовом формате а не в hex. Как сохранить hex из CodeVisionAVR?


UPD: ну вот я не безнадёжен. Нашел в папке проекта файл hex, скормил его avreal, включил девайс и светодиод на PD0 весело замигал :)

А в CodeVision можно только на С писать или на ассемблере тоже можно?
можно делать ассемблерные вставки. советую поискать в сети книгу, с описанием CV.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Пн мар 21, 2011 14:31:56
DiGiCat
brian4ever писал(а):Что я делаю нитак? Прошить из CodeVisionAVR пока не имею возможности, программатор 7 проводков и 4 резистора, шьёт только из аvreal,
CV шьет, в меню выбрать программатор Kanda Systems STK200+/300
Тема по CodeVisionAVR вверху прилепленна..

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс май 01, 2011 13:12:24
СКАЗОЧНИК
Я начинал с АТмега8, теперь АТмега16, думаю лучше даже с АТмега16 начинать. =) Курс обучения очень понятный и доступный для чайников avr123.nm.ru
рекомендую.
В конце есть по ПИКам. =)

з.ы. по ТИНИ читал, что есть проблемы с программированием. они вроде как не понимают на быстром прошивании. Надо скорость порта убавлять. (или в программаторе-программе)... Сам не пробовал, хотя ТИНЬКА валяется.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс май 01, 2011 13:23:51
SubDia
Коль уж Вы решили работать в среде CodeVision C AVR, то буду иметь смелость рекомендовать книгу М.Б.Лебедева - "CodeVisionAVR. Пособие для начинающих". Лежит на любом углу в сети. У меня она в качестве настольной книги - написана толково и с объяснениями, действительно для начинающих.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс май 01, 2011 13:32:28
Мурик
Вот обучалка по AVR контроллерам
http://decada.org.ru/project/lessons/ba ... /index.php

А так, рекомендую среду BASCOM.
http://radiokot.ru/forum/viewtopic.php?f=20&t=6408

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вс май 01, 2011 13:50:41
DX168B
Ну, а мне для начинания хватило AVR Studio + WinAVR и местной обучалки.
Только у меня был не предлагаемый обучалкой МК AT90S2313, а TINY26L.
Отличие от материала было только в том, что регистр указателя стека назывался не SPL, а просто SP,
что я узнал из даташита на свой МК. Начинал с ассемблера, на нём-же и остановился.
Программатор выбрал UniProf (требует наличие ОС WinXP и COM\LPT порта)
Си у меня для ПК (x86 Visual Studio).
Быстро освоился, так как базовые знания программирования микропроцессоров
у меня уже были.

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вт авг 02, 2011 13:22:41
gdoom
Товарищи подскажите пожалуйста - есть такая схема программатора
http://prottoss.com/projects/AVR910.usb ... rammer.htm
- вопрос такой, не прикончит ли он usb? и кто нить собирал его? и последний вопрос - дайте пожалуйста простенькую схему источника питания для контроллера который будет программироваться....

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вт авг 02, 2011 13:54:50
Jack_A
gdoom писал(а): простенькую схему источника питания для контроллера, который будет программироваться....
Проще не бывает...
BP.JPG
(5.36 КБ) 746 скачиваний

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вт авг 02, 2011 15:14:26
gdoom
Спасибо - :lol:

а насчёт программатора - может кто имеет опыт с ним работы, с данной схемой?

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вт авг 02, 2011 15:30:23
BigallS
brian4ever писал(а):Здравствуйте. Заинтересовался микроконтроллерами после того как собрал пару схем одну на PIC16F819, вторую Простые часы на ATTiny2313. Очень понравилось, с простейшими программаторами и прошивкой проблем не возникло, но появилось желание продолжить опыты и самому научится писать программы.

Беда в том, что не могу найти нормальной среды программирования и обучалки по этой среде. Начать хочется с ATtiny2313. Обучалка по AVR на сайте прочитана, и видимо хороша, но понять её и использовать на практике сложно хотя бы потому что AT90s2313 уже не найти и tavrasm уже устарел и не знаю можно ли его использовать с Attiny2313. Знания языков программирования у меня на школьном уровне, простые программки на Паскале, что то помню рисовал на писишном ассемблере, но давно это было.

Посоветуйте с чего сейчас актуально начать, какую среду разработки использовать, и толковый учебник по этой среде.

Лучше разбираться с ассемблером или сразу осваивать С?

Нужны именно азы, настройка среды под микроконтроллер, конфигурация портов, зажечь светодиод, бегуший огонёк, динамическая индикация, управление матрицей на сдвиговых регистрах, опрос клавиатуры, и.т.д.
Есть очень хороший курс здесь http://easyelectronics.ru/category/avr-uchebnyj-kurs там много что есть

Re: Как начать писать программы для микроконтроллеров ?

Добавлено: Вт авг 02, 2011 19:40:24
borys
Для gdoom.
Опыт работы с программатором AVR910 by prottos имеется. Он вполне работоспособен. Но лучше делать не его, а USBasp. Детали и расходы те же, но работает
намного лучше.