====== Tarkvara seadistamine (IDE) ====== ====== Atmel Studio 6 ====== **Vajalik tarkvara** * Atmel Studio 6 * Pololu AVR Development Bundle {{:et:projects:3pi:keskkond.png?600|Atmel Studio 6.2}} ===== Tarkvara paigaldamine ja seadistamine ===== /*{{ :et:projects:3pi:teegi_headerid.png?340|}} */ Enne programmeerimist tuleb laadida alla vajalik tarkvara. Atmel Studio on saadaval [[http://www.atmel.com/tools/atmelstudio.aspx|Atmel kodulehel]] või [[https://www.pololu.com/docs/0J51/3.1|Pololu kodulehel]]. Pololu lingi alt leiab ka Pololu AVR Development Bundle lisapaki, mis sisaldab programmatori draivereid ja teeke 3pi roboti programmeerimiseks. Esimesena tuleb paigaldada Atmel Studio 6 ja seejärel Pololu AVR Development Bundle. Vales järjekorras tarkvara paigaldamisel ei hakka 3pi teegid toimima. Lisainfo tarkvara paigaldamise osas erinevatele operatsioonisüsteemidele [[https://www.pololu.com/docs/0J51|Pololu kodulehel]]. Enne kasutamist tuleb tarkvara seadistada. Esmalt tuleb avada Atmel Studio 6 ja teha uus 3pi projekt (ATmega328p mikrokontroller). Seejärel ülevalt menüüribast valida //Build->Build Solution//. Kui kõik oli korrektselt seadistaud, siis peaks paremal //Solution Explorer// aknas //Dependencies// kausta alla tekkima teekide loetelu. Edasi tuleb seadistada programmaator, et see töötaks Atmel Studio-ga. Selleks eelnevalt programmaator ühendada arvutiga ja avada ülevalt menüüribast //Tools->Add Target//. Avanevas aknas tuleb valida: * Select Tool->STK500 * Select Serial Port->COMX (X asemel on number, mis on igal arvutil erinev) Kui saadaval on mitu COM port-i, siis tuleb Windows //Device Manager->Ports(COM & LPT)// alt uurida, milline on //"Pololu USB AVR Programmer Programming"// port. Programmaator on pärast //Apply// nupu vajutamist seadistatud. ====== Code::Blocks ====== **Vajalik tarkvara** * Code:Blocks IDE või HomeLab Code:Blocks * Pololu AVR Development Bundle * {{:software:avrdude.zip|AVRDude}} - Paki failid Codblocks kataloogi //Programmer// [[https://youtu.be/nRpKSDxnm8w|Videojuhend]] ===== Seadistamine ===== Luua uus projekt järgmiste seadetega: {{:et:projects:3pi:codeblocks_avr_project.png?400|}} //Settings->Compiler and debugger ...// //Linker settings// Lisada libpololu_atmega328p.a kompileeritud teegi fail nupuga //Add// {{:et:projects:3pi:codeblocks_build_options.png?400|}} //Search directories// Lisada Pololu teegi kataloog nupuga //Add// //Compiler// ja //Linker// lehtedel. {{:et:projects:3pi:codeblocks_linker.png?400|}} {{:et:projects:3pi:codeblocks_target.png?400|}} //Tools->Configure tools...// Lisada programmaatori seaded nupuga //Add// Windows: Executable: C:\HomeBlocks\Programmer\AvrDude\avrdude.exe Parameters: -c avrispv2 -p m328p -e -P COMxx -U flash:w:${TARGET_OUTPUT_BASENAME}.hex Working directory: ${TARGET_OUTPUT_DIR} Linux: Executable: /usr/bin/avrdude Parameters: -c avrispv2 -p m328p -P /dev/ttyACM0 -U flash:w:${TARGET_OUTPUT_BASENAME}.hex Working directory: ${TARGET_OUTPUT_DIR} {{:et:projects:3pi:codeblocks_programmer_tool.png?400|}} ===== Võimalikud probleemid ===== ==== Üleslaadimisel tekib veateade ==== avrdude.exe: error opening projekti_nimi.hex: No such file or directory avrdude.exe: input file projekti_nimi.hex auto detected as invalid format avrdude.exe: can't open input file projekti_nimi.hex: No such file or directory avrdude.exe: write to file 'projekti_nimi.hex' failed või laetakse peale vana kompileeritud fail //Project->Properties ...// //Build targets// Eemaldada //Output filename:// realt faili laiend koos punktiga (.elf) {{:et:projects:3pi:codeblocks_elf_probleem.png?400|}} ==== Üleslaadimisel tekib veateade calloc ==== In function `calloc': calloc.c:(.text.avr-libc+0x8): undefined reference to `__mulhi3' collect2.exe: error: ld returned 1 exit status Eemaldada konkureeriv linkeri viide (võib ka lihtsalt kaldkriipsu ette panna, et linker ei leiaks kataloogi) //Settings->Compiler and debugger ...// //Search directories// -> //Linker// {{:et:projects:3pi:codeblaocs_linker_probleem.png?400|}} ==== Ei tuvastata programmaatorit ==== USB kaabel vigane (Pololu programmaatori originaalkaabel ei ole kvaliteetne), proovi teist kaablit.