Технически форум > Програмиране
Започваме да се запознаваме с програмирането!
Borislav:
Ясене, много важно разяснение! Благодаря за помощта! :) Много интересна информация. Ще си изтегля програмката, за да видя за какво става въпрос. Мерси още веднъж!
yasko:
Както бях обещал ще се опитам да разкажа как да направим един елементарен проект с AVRStudio и WinAVR. За целта трябва да имаме инсталирани въпросните 2 програми на комютъра. Линкове за изтегляне на AVRStudio има по-нагоре в темата, а последната версия на WinAVR може да бъде изтеглен от тук.
След като програмите са инсталирани, стартираме AVRStdio и от менюто "Project" избираме "New Project", след което изскача един диалогов прозорец. Оттам трябва да изберем първо типа на проекта има 2 избора:
"ATMEL AVR Assembler" или "AVR GCC",
тъй като ще правим пример на C избираме "AVR GCC". След това трябва да дадем име на проекта и да изберем дали да бъде създаден начален файл и директория. От позиция "Location" в диалогови прозорец може да изберем къде да се създаде проекта. Нека за име на проекта да изберем "led1" и да изберем да ни бъде създаден начален файл и директория. Натискаме "Finish" и проекта led1 есъздаден :) Програмата автоматично ни отворя началния файл с име "led1.c" в който може да почнем да пишем нашия код. Преди това обаче трябват да се направят някои други настройки по проекта.
От меню "Project" избираме "Configuration Options" и се отваря диалогов прозорец за основни настройки по проекта. Повечето от нещата имат стойности по подразбиране, но някои от тях задължително трябва да настроим:
1. Избираме "Device" или типа ма микроконтролера с който ще работим, сегашния пример ще го направим с ATmega8, така че избираме този процесор от падащото меню.
2. Задаваме в полето "Frequency", работната честота, най често това е честота на външния кварц (за това по късно), слагаме 8 000 000 Hz (8MHz)
3.От полето "Optimisations" избираме нивото на оптимизация на компилатора - за начало избираме ниво "Os" или оптимизация за големина на изпълнимия файл.
С това основните настройки са завършени и може да запчнем работата по писането на програмата.
В следващата тема ще опиша кратка програма, която да накара един светодиод да мига. (затова избрах име на проекта led1 :))
Borislav:
AVRStudio ми изглежда много добра програма! Настройките са лесни за изпълнение, а и интерфейса много ми допада! :) С огромно нетърпение очаквам урока за първата програма с въпросната AVRStudio.. Ясене, моля те, разкажи и дали има някакви тънкости при свързването на Микроконтролера с компютъра.. Браво!
INF1n1t:
Ей момчета - страхотни сте! Как сте го обяснили, та направо ми идва да почна да пиша и аз статии, че ме домързяло от известно време...
yasko:
Време е да продължа с програмата за размигване на светодиода :)
Борислав е качил една примерна програма: my_test
Позволих си да корегирам и тествам някои неща и сега програмата доби следния вид:
--- Код: ---
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL // 8 MHz
//функция генерираща закъснение в диапазона 1 -65535 ms
void delay_ms(unsigned int ms)
{
while (ms>0){
_delay_ms(1);
ms--;
}
}
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 сек.
} // закриваща скобка на безкрайния цикъл
} // Закриваща скобка на основната
--- Край на кода ---
Утре ще продължа с коментарите и разясненията по програмата.
Навигация
[0] Списък на темите
Премини на пълна версия