| Автор | Сообщение |
ILYAUL Мастер Сообщения: 421
|
Вчера эксперементируя с шимом спалил ATMEGA 164 - заказал , но будет только после праздников . Слава богу Dragon выжил . И вот от не фига делать решил кое чем поделится.
Кстати о заказе http://shop.efo.ru - не в порядке какой либо рекламы , но я у них получал и достаточно быстро любую ATMEL/ Сама контора ( главный офис) в Питере.
Ну ладненько- И так с чего начать изучение AVR - да с самого простого. Скачать с сайта http://www.atmel.ru/Software/Software.htm aStudio4b528.exe (74MB) . В него встроенно практически всё . Там же и прочтёте. И отмечу сразу - писать в нём можно на двух языках - какой больше нравиться.
При установке он попросит регистрацию - бояться совершено нечего- простой сбор данных маркетинга ATMEL - прога FREE
Установили - запускаем "D:\AVR\AVR Tools\AvrStudio4\AVRStudio.exe"- это мой путь, у Вас он может быть любой.
И сразу ступор , что тут и как. Перед Вами картинка (START- прикреплён) - получив её стоит призадуматься и решить с каким ATMELом Вы будете работать .
Решив ,для себя эту задачу, смело жмём NEW PROJECT - и получаем вопросик - какой язык будете использовать? Т.К. я пишу на асме , то тут выбираю его , а AVR GCC-понятно .
Как только выбирите язык , Вам тут же предложат озаглавить проект иначе дальше не пройти - Заполняем графу "Project NAME" заполнять ТОЛЬКО на латинице (AVR - русского не понимает и возникают проблемы при отладке) жмём NEXT - чем дальше тем страшнее получаем картинку "ПРОЦЕССОР" - точка принятия решения- В левой колонке симуляторы разработанные ATMEL для сей проги , в правой перечень процессоров которые они поддерживают. Проблем почти никаких - всё можно купить уже на Российском рынке.
Но, что делать у кого таких возможностей пока нет.
Выбираем "AVR Simulator" - жмём FINISH - всё вошли. AVRStudio.gif
Перед Вами 4 окна - в левом проект или процессор ( можно поиграться переключая вкладки - безопасно!) В правом Ваш процессор со всеми его устройствами (тоже можно пощёлкать, но толку пока мало) Внизу - пока забудьте- Вам нужно окно посредине.
Пишем программу - в ценральном окне
Я вложил файл ASM для самого простого примера кнопка и светодиод- начинать советую именно так- главное понять приципы работы программы. Лучше , если писать будете сразу под свой процессор - по аналогии с моей программой.
.include присоединяет к основной программе файл описания для Вашего процессора - найдите свой файл по аналогичному пути- в нём содержится всё чем "знаменит" Ваш процессор -его можно создавать самому , но пока рано.( Это коротко- но можете найти в инете и почитать про эту директиву сами) Кстати и другие директивы я опишу коротко.
.device - сообщает асму для кого пишется программа и для кого её транслировать
.def - макрокоманда - присваивает регистру обычное " народное" имя - называть можно как хотите - в примере TEMP
Остановлюсь - главным регистром временного хранения должен быть регистр способный работать со всеми остальными регистрами AVR - у AVR это обычно регистры от 16-го до 31-го ( рабочие регистры)
.cseg (dseg,eseg) у AVR три памяти Flash SRAM EEPROM - cseg- сегмент кода программ (память программ) я не буду описывать зачем это делается - единственное она (директива) , где будут потом помещены коды программы.
.org- засада! - директива предписывающая по какому адресу должна начинаться запись данной програмы в память программ. И вот здесь надо кое чему научиться сразу- младшие адреса в AVR отведены для векторов прерываний различными устройствами - в программе ( для AVR164 ) их не большой списочек- активен только RESET , с него при сбросе ( почитайте формирование сброса ) всё и начинается - поэтому там и записан первый переход на основную программу, все остальные блокированы " ; ". В асме этот значок поставленный где угодно означает, что после него идут комменты и роли не играют никакой.
Я уже привык для любого процессора записывать все векторы прерывания сразу и ставить перед ними " ; " , если они не используются - во FlASH они не попадут - но в случае чего всегда под рукой -достаточно убрать ; и написать обработку. И вставлять их не сложно . Я обычно просто копирую их из DATASHEET на процессор ( PDF -великая вещь) и определяю .org следующим адресом после них.
И так с RESET "перелетаем" на определение STACK . Верхушка памяти RAM , куда в случае возникновения прерываний будут занесён адрес возврата (Читайте о нём отдельно и очень внимательно!!)
Определить его необходимо сразу!!! В моей программе полный адрес стека прописывается для старшего и младшего байта адреса - в процессорах Tiny достаточно и одной команды ldi temp, RAMEND RAMEND - это значение записано для каждого процессора в файле ****.inc и Вы его подключили директивой include , так, что асм сам разберётся где она эта верхушка.
Инициализация порта - можно работать и с одним и с двумя . Я написал для одного.
У всех портов AVR существуют 3 регистра DDRx PORTx и PINx
DDRx - регистр направления передачи данных - запись 1 в бит порта озночает , что данный бит работает выходом - 0 входом
Запись регистра PORTx - выводит информацию Считывание PINx вводит информацию.
Все остальные команды описаны в DATASHEET и так или иначе их придётся понимать самим и конечно постораться запомнить.
Программа Вами дописана - давайте проверять.
Можем нажать F7 или поводить по значкам пока не найдём (лучше поводить - подсказки к значкам несут полезную инфу ) " Assamble F7" жмём - "оживает" нижнее окно , где появляются всякие сообщения о ходе трансляции , ошибках, предупреждениях , или ошибок нет.
Рядом с каждой ошибкой ( нет ошибок - не интересно и рассказывать) появляется кружок и само описание , если нажать на кружок - Вас переместят на строчку с ошибкой - исправляете все - жмете F7 или иконку - пока не будет сообщения
Assembly complete, 0 errors. 0 warnings
И вот тут начинается самое интересное - ибо Вы полностью готовы посмотреть как будет вести себя Ваш проц с Вашей программой.
Даже , если этого проца у Вас пока нет .
Вверхней строчке находим DEBUG и жмём START Debbuging ( там , есть значёк и он соответствует иконке - просто описать его сложно и предложил этот путь)
Появляется желтая стрелочка на первой выполняемой команде тамже находим команду STEP Into ( у нее тоже есть иконка - тест на сообразительность) -и жмём пока не надоест - пошагово выполняется вся программа , а вот с правой стороны , если окрыть порт вы будете видеть как по ходу программы изменяется его состояние, слева можно посмотреть на регистры проца . А щёлкнув по биту PIN4 с правой стороны можно иммтировать нажатие и выкл кнопки и смотреть , что происходит с битом вкл-откл светодиод.
Наиграетесь - можно записать в сам проц не выходя из проги - но это другая история.


START.JPG 64,07 КБ Скачано: 778 раз(а)
AVRStudio.GIF 64,43 КБ Скачано: 748 раз(а)
buttom.rar 1,02 КБ Скачано: 760 раз(а)
|
|
KVI Участник Сообщения: 1698
|
ILYAUL, Привет, Илья.
Что можешь сказать по поводу этих книг для начинающих:

|
|
ILYAUL Мастер Сообщения: 421
|
Приветик! У меня есть все и брал всего по немногу для учёбы из каждой , где-то описано лучше , где-то хуже , но лишняя инфа не помешает. |
|
KVI Участник Сообщения: 1698
|
|
|
Текущий раздел»
Программное обеспечение»
Микроконтроллеры (Микроконтроллеры - AVR-ы, PIC-и и другие)
Похожая информация:
CodeVisionAVR для начинающих
|
|
|