Технически форум > Програмиране

Започваме да се запознаваме с програмирането!

(1/7) > >>

Borislav:
Ето, че настана време да започваме да се учим на програмиране! Сега ще ви обясня основните настройки на програмата, с която ще програмираме. За целта ще използваме WinAVR - една от най-популярните програми за програмиране на роботи!

Първо е необходимо да създадем папка, където ще се намират файловете на Вашия проект. Названието на папката е по Ваш избор, а мястото и е добре да е там, където сте инсталирали пакета на WinAVR.

И така...да започваме! Отваряме редактора на програмиста Programmers Notepad [WinAVR]. Можете да си оставите иконка на Десктопа. В менюто на редактора трябва да изберете File -> New -> C/C++ и въвеждаме програма на езика Си.


--- Код: ---/************************************************

ПРИМЕР ЗА МИГАНЕ НА СВЕТОДИОДИ

*************************************************/


   #include <avr/io.h>
   #include <avr/delay.h>
   #define F_CPU 8000000UL  // 8 MHz
   
   int main(void)              // начало на основната програма
   {
   
   DDRD = 0xff;            // Всички изводи на порта D трябва да се конфигурурат като изводи

        while (1) {              // Безкраен цикъл

PORTD = 0xff; // установяваме "1" на всички линии на порта D

_delay_ms(250);   // Чакаме 0.25 сек.

PORTD = 0x00;  // установяваме "0" на всички линии на порта D

_delay_ms(250);   // Чакаме 0.25 сек.

}       // закриваща скобка на безкрайния цикъл

   }      // Закриваща скобка на основната програма
--- Край на кода ---


Съхраняваме листингът на програмата във файл, с име "my_test.c" Името на файла е по ваш избор, без интервали, и с разширение ".c". След това затваряме Programmers Notepad.

Borislav:
Урок 2:

Създаване на файл - Makefile

В WinAVR, изходният текст на програмата се компилира с помощта на утилита make.exe, която се намира в папка WinAVR\utils\bin. Make.exe контролира генерацията на използваните файлове от изходния код на програмата. За управление на този утилит се използват именно makefile-овете. Тя съобщава на компилатора какви програми да пуска, кой изходен код да генерира и т.н...

След инсталирането на WinAVR в папката WinAVR/sample може да се намери шаблон с името Makefile, която трябва да се копира в папката с проекта и вече оттам да се редактира.

Внимание! Makefile и компилираният файл (в случая my_test.c) трябва да се намират в ЕДНА папка!

Отваряме Makefile в редактора Programmers Notepad и ще редактираме няколко важни за компилатора инструкции.

Първо, задължително трябва да се посочи за какъв тип микроконтролер да бъде изходният код. Търсим следните редове:


--- Код: ---# MCU name
MCU = atmega128
--- Край на кода ---


Първият ред е коментар, а във втория, вместо atmega128 пишем този микроконтролер, който ни интересува. (Например: atmega8, attiny2313, attiny26 и т.н.)

Частотата на използвания кварцов кристал (в Херци) се определя в редовете:


--- Код: ---# Processor frequency.
F_CPU = 8000000
--- Край на кода ---


Името на проекта, а съответно и името на изходния файл, с функцията main и изходните файлове с разширение hex и cof, се определя в следните редове:


--- Код: ---# Target file name (without extension).
TARGET = testpp
--- Край на кода ---


Тук, вместо testpp пишем нужното име на проекта (в нашия случай е my_test).


Търсим редовете:


--- Код: ---# List C source files here. (C dependencies are automatically generated.)
SRC =
--- Край на кода ---


И след знака "равно" пишем $(TARGET).c, за да се получи това:


--- Код: ---# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c
--- Край на кода ---



Търсим редовете:


--- Код: ---# List C++ source files here. (C dependencies are automatically generated.)
CPPSRC = main.cpp
--- Край на кода ---


След знака "равно" изтриваме. Трябва да се получи това:


--- Код: ---# List C++ source files here. (C dependencies are automatically generated.)
CPPSRC =
--- Край на кода ---



След това, малко по-надолу намираме раздела:


--- Код: ---#---------------- Programming Options (avrdude) ----------------
--- Край на кода ---


Търсим реда:


--- Код: ---AVRDUDE_PROGRAMMER = stk500
--- Край на кода ---


и го заместваме с:


--- Код: ---AVRDUDE_PROGRAMMER = stk200
--- Край на кода ---


След това, ще използваме за целта си упростен вариант за програматор. За тези, които още не са разбрали, STK200 е програматор от типа "Пет проводника". Ще има описание в съответната тема! :)

Търсим реда:


--- Код: ---AVRDUDE_PORT = com1     # programmer connected to serial device
--- Край на кода ---


и заместваме с:


--- Код: ---AVRDUDE_PORT = lpt1
--- Край на кода ---


Програматорът stk200 използва паралелния порт на компютъра - LPT (принтерският).

Освен това, в състава на WinAVR влиза и утилита MFile, която помага правилно да се редактира и състави Makefile-ът! Можете да я стартирате от Старт -> Програми (Programs) -> WinAVR -> MFile [WinAVR].

Това беше вторият урок! Очаквайте третият и последен, в който ще компилираме програмата, и след това вече започваме да правим схеми с експериментиране на програмите! :)

Borislav:
Урок 3:

Компилация на програмата


Заредете в редактора Programmers Notepad изходния текст на програмата my_test.c, в менюто изберете Tools -> [WinAVR] Make All. Командата Make All изпълнява компилирането на изходния код на програмата и в случай на отсъствие на грешки генерира файл, който може да се качва на микроконтролера от серията AVR!

Долу, в прозореца "Output" трябва да се появи следното съобщение за успешна компилация:



А в папката на Вашия проект трябва да имате следните файлове:



Най-важният от тези файлове за нас ще бъде my_test.hex. В него се пази шестнадесетиричният код за качване в паметта на програмите (Flash ROM) на микроконтролера.


--- Код: ---:1000000012C02BC02AC029C028C027C026C025C0C6
:1000100024C023C022C021C020C01FC01EC01DC0DC
:100020001CC01BC01AC011241FBECFE5D4E0DEBF28
:10003000CDBF10E0A0E6B0E0E0E8F0E002C005903F
:100040000D92A036B107D9F710E0A0E6B0E001C0EC
:100050001D92A036B107E1F701C0D2CFCFE5D4E0C1
:10006000DEBFCDBF8FEF81BB282FE0E0F0E022BBE9
:10007000CF010197F1F712BACF010197F1F7F7CF4E
:00000001FF
--- Край на кода ---


Във файла my_test.eep се пази шестнадесетиричният код за качване на данни в енергонезависима памет (EEPROM).

Трябва да се доуточни, че след всяка редакция на кода, програмата трябва да бъде прекомпелирана, т.е. в редактора Programmers Notepad трябва да е изпълнено Tools -> [WinAVR] Make All.

Ако проектът се състои от няколко файлове, и вие сте редактирали само един от тях, тогава при повторната прекомпилация ще се компилира само редактираният файл! За пълна прекомпилация трябва да изпълните в началото следната функция: Tools -> [WinAVR] Make Clean, и след това командата [WinAVR] Make All. Командата Make Clean премахва всички файлове, генерирани от предната команда Make All.

Това бяха уроците с WinAVR! Вече мога да ви дам линк за изтегляне на програмата!
Можете да я изтеглите от ТУК

Успех на всички!!! :)

yasko:
Да допълня малко темата. Първо какво предствалява WinAVR, това е пакет програми базиран на AVR-GCC кoмпилатора и позволява неговото използване по Windows. Пакета е безплатен и дава възможност свободно да се създават и компилират C програми за AVR. Борислав е описал добре работата с WinAVR, като отделна програма. Съеществува и възможност тя да се използва като plug-in съвместно с друга програма AVRStudio. Въпросното AVRStudio e интегрирана среда за разработка на фирмата ATMEL, включва в себе си project manager, асемблер, симулатор, подръжка на различни видове дебъгери и програматори. Хубавото е че тя позволява към нея да се добави WinAVR и да се получи напълно интегрирана среда за разработка, включваща в себе си и C компилатор. AVRStudio е безплатно програма и може да се изтегли от сайта на фирмата ATMEL на този адрес:
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725
За съжаление въведоха една досадна регистраци при изтегляне на средата, която смятам че за любителски цели е ненужна, така че за момента може да се изтегли директно от тук:
http://www.atmel.com/dyn/resources/prod_documents/aStudio4b528.exe
Големината е около 70MB. В следващите теми ще опитам да обясня накратко как се създава проект и се компилира.
_________________

DataMatrix:
Благодаря на Borislav и yasko за полезната информация и за да улесня българите с бавен международен интернет ще дам този линк: http://datamatrix.bgshare.com/robotica/aStudio4b528.exe

Навигация

[0] Списък на темите

[#] Следваща страница

Премини на пълна версия