Технически форум > Програмиране
Започваме да се запознаваме с програмирането!
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] Списък на темите
Премини на пълна версия