====== Arenduskeskkond Eclipse (Windows) ATmega2561 ====== Järgnev juhend kirjeldab Kodulabori versioon 5 (Kontroller v1 - ATmega2561) arenduskeskkonna paigaldamist ja esmast seadistamist. ===== Tarkvara paigaldamine ===== Paigaldamiseks laadige alla Robootika Kodulabori arenduskeskkond vastavalt oma operatsioonisüsteemile. Arenduskeskkond sisaldab endas Eclipse arenduskeskkonda, Eclipse AVR pluginat, Robootika Kodulabori teeki, Kodulabori programmeerimisvahendeid ja näidisprojekti. **MS Windows** Tarkvara allalaadimine -> [[et:files|Eclipse HomeLab pakk]] **Linux Ubuntu** Tarkvara allalaadimine -> [[et:files|Homelab-keyring]] **Linux/muud ja Mac OS** Paigaldage järgmine tarkvara: * Eclipse * Eclipse AVR plugin * Hlinit * Hlflash * AVRdude mod. * Robootika Kodulabori teek ===== Projekti loomine ===== Kui arendustarkvara on paigaldatud saab alustada programmi kirjutamist, kuid eelnevalt on vaja teha siiski mõned seadistused ja luua projekt. Uus projekt, sisaldab endas tüüpiliselt palju erinevaid faile: programmikoodi(e), päisfaile, kompileeritud programmi jne. Selleks, et projektid oleks korrektselt eristatavad, tuleks iga projekti jaoks luua uus kataloog (seda võimalust pakub uue projekti loomise abimees). Uue projekti loomiseks tuleb läbida järgmised sammud: **1.** Avada Eclipse (Robotic HomeLab IDE) ja alustada uue projekt seadistamist. Kui Tarkvara on äsja paigaldatud, on esmalt vaja tekitade projektide repositoorium ehk //Workspace//. Selleks näidake avanenud aknas //Workbench// asukoht, kuhu soovite projektide repositooriumi luua. {{:software:eclipse:eclipse0.jpg?520|}} {{:software:eclipse:eclipse1.jpg?500|}} Uue projekti loomiseks tuleb valida menüüst //File - New - C project//. Lisada projekti nimi ning vajutada nupule //Next//. **2.** Järgmises aknas tuleks projekti konfiguratsiooniks valida ainult Release {{:software:eclipse:eclipse3.jpg?400|}} **3.** Järgnevalt avaneb aken, kus tuleb märkida mikrokontrolleri tüüp ja taktsagedus. Kodulabori (v5) mikrokontrolleriks on //ATmega2561// ja taktsageduseks 14745600 Hz. Projekti lõplikuks loomiseks vajutada nupule //Finish//. {{:software:eclipse:eclipse4.jpg?400|}} **4.** Nüüd avaneb juba programmeerimise kasutajaliides, kuid enne, kui saab hakata programmi kirjutama, on vaja tekitada algkoodi fail. Selleks valige äsjaloodud projektil hiire parema klahviga //New - Source File// ja sisestage soovitud faili nimi, mis peab kindlasti lõppema laiendiga ".c". Soovitav on peafaili nimeks valida "main.c". Peale //Finish// nupu vajutamist luuakse vastav fail ja avatakse see arenduskeskkonda. {{:software:eclipse:eclipse5.jpg?400|}} **5.** Enne lähtekoodi kirjutamist on mõistlik teha mõned seadistused, mis peaks hõlbustama arenduskeskkonna kasutamist. Valige menüüst //Window - Preferences// ja avage vasakul olevast puust //General - Workspace// ning märkiga ära valik //Save automatically before build// {{:software:eclipse:eclipse6.jpg?400|}} **6.** Edasi võib hakatuseks kopeerida alloleva testprogrammi lähtekoodi ja üritada seda kompileerida. Kompileerimiseks võib kasutada klahvikombinatsiooni CTRL+B. //Lihtne testprogramm, mis ei kasuta Kodulabori teeki. #include int main(void) { unsigned int x,y; // Viigu PB7 seadmine väljundiks DDRB = 0x80; // Lõputu tsükkel while (1) { // Viigu PB7 inverteerimine PORTB ^= 0x80; y=3200; while(y--){ x=260; while(x--){ asm volatile ("nop"); } } } } Kompileerumise õnnestumiseks peab olema tarvarakood ilma vigadeta ja kompilaator peab leidma kõik vajalikud päisfailid. Eduka kompileerumise tunnuseks on //Problem// aknas tühjus (äärmisel juhul mõni hoiatus //Warning//) ja //Console// aknas kompilaatori väljund mis antud projekti puhul on midagi sellist: AVR Memory Usage ---------------- Device: atmega2561 Program: 308 bytes (0.1% Full) (.text + .data + .bootloader) Data: 0 bytes (0.0% Full) (.data + .bss + .noinit) Finished building: sizedummy {{:software:eclipse:eclipse7.jpg?520|}} Kui koodis oli viga või ei leitud päisfaile, siis on //Console// aknas viimasel real veateade koos leitud vigade arvuga, millele eelneb leitud võimaliku vea kirjeldus. ../main.c: In function 'main': ../main.c:23: error: expected ';' before 'while' ../main.c:13: warning: unused variable 'x' make: *** [main.o] Error 1 Samuti on //Problems// aknas erinevad veateated ja vastav koht koodis märgitakse vea ikooniga. {{:software:eclipse:eclipse8.jpg?520|}} **7.** Kodulabori teegi kasutamine eeldab, et see on tarkvara paigaldamise juhendi kohaselt süsteemi paigaldatud. Iga projekti korral tuleb teek projekti seadetest lisada lingitavate objektide nimekirja. Selleks avada esmalt: //Project -> Properties// ja seejärel vasakust puust //C/C++ Build -> Settings//, edasi //Tool Settings -> AVR C linker -> Libraries//. Paremal avanenud aknas valida //Libraries (-l)// osas ikoon //Add...// ja sisestada avanenud aknasse homelab2561. Seejärel //OK// ja veelkord //OK//. {{:software:eclipse:eclipse10.jpg?520|}} **8.** Edasi võib teegi testimiseks kopeerida alloleva testprogrammi lähtekoodi eelmise asemele ja üritada seda kompileerida. Kompileerimiseks võib kasutada klahvikombinatsiooni CTRL+B. //Lihtne testprogramm, mis kasutab Kodulabori teeki. #include #include int main(void) { // Viigu PB7 seadmine väljundiks DDRB = 0x80; // Lõputu tsükkel while (true) { // Viigu PB7 inverteerimine PORTB ^= 0x80; hw_delay_ms(500); } } Kui ka selle koodi kompileerimine õnnestub, siis on kõik eelnevad seadistused tehtud õigesti. ===== Kontrollerile koodi laadimine ===== **1.** Ühendada kontrollerplaat USB kaabliga arvutiga. Peale kontrollerplaadi ühendamist peaks (esmasel ühendamisel teatud aja pärast) süttima väike roheline toite LED - PWR. **2.** Määrata programmi laaduri (AVRDude) seaded. Selleks avada uuesti projekti seaded //Project -> Properties// ja seejärel vasakust puust //AVR -> AVRDude//, edasi //Programmer configuration -> New//. Avanenud aknas midagi eriti seadistada pole vaja ja võib kohe //OK// vajutada. Veenduge et see oleks valitud ja vajutage //Apply// ning //OK//. {{:software:eclipse:eclipse9.jpg?520|}} Oluline on kontrollida, et nüüd oleks //Programmer configuration// valikus midagi valida ja juhul kui eelnevalt midagi ei muudetud on selleks: //New Configuration//. {{:software:eclipse:eclipse11.jpg?520|}} **3.** Kui Kodulabori Kontrollermoodul on arvutiga ühendatud võib kompileeritud programmi nüüd üritada laadida kontrollerisse. Selleks vajutage lihtsalt AVR ikoonile või klahvikombinatsioon CTRL + Alt + U. Programmi mõjul peaks kontrolleri plaadil olev oleku-LED PB7 perioodiliselt süttima ja kustuma. Kui programm töötab, on tarkvara paigaldatud edukalt ja esimene projekt tehtud. Palju õnne! {{:kit:kit_2561_test.jpg?400|}} ===== Ujukoma-arvude kasutamine ===== Mõnikord tekib vajadus AVR programmis kasutada ujukoma-arve. Nendega arvutamiseks ja nende esitamiseks printf-tüüpi funktsioonidega tuleb projekti seadistustes teha järgmised muudatused: 1. Avada projekti seaded menüüst File → Properties. Vasakul paneelil avada C/C++ Build → Settings. Paremal avanenud valikust valida AVR C Linker → Libraries, kuhu tuleb lisaks kodulabori teegile lisada teegi objektid //printf_flt// ja //m// (libprintf_flt.a ja libm.a). 2. Seejärel tuleb avada AVR C Linker → General ja //Other Arguments// kasti lisada read rida //-uvfprintf//. {{:examples:eclipse:eclipse_floating_point_libraries.png?520|}} {{:examples:eclipse:eclipse_floating_point_printf.png?520|}} 3. Vajutada OK ja sulgeda seadete aken.