2. 2hendri@pens.ac.id
PendahuluanPendahuluan
►WinAVR adalah tool yang dikembangkanWinAVR adalah tool yang dikembangkan
untuk mikrokontroler Atmel AVR RISCuntuk mikrokontroler Atmel AVR RISC
►Program yang ditulis dengan menggunakanProgram yang ditulis dengan menggunakan
C, dikompile menggunakan GCC dan avr-C, dikompile menggunakan GCC dan avr-
libcclibcc
►Open source, dapat diperoleh diOpen source, dapat diperoleh di
winavr.sourceforge.netwinavr.sourceforge.net
3. 3hendri@pens.ac.id
Install ProgramInstall Program
►Instalasi cukup mudahInstalasi cukup mudah httphttp
://winavr.sourceforge.net/://winavr.sourceforge.net/
►Sudah terdapat IDE, Compiler, DebuggerSudah terdapat IDE, Compiler, Debugger
dan Mfile untuk mempermudah pembuatandan Mfile untuk mempermudah pembuatan
programprogram
4. 4hendri@pens.ac.id
Programmer’s NotepadProgrammer’s Notepad
►Programmer’s Notepad adalah tools utamaProgrammer’s Notepad adalah tools utama
yang digunakan untuk menulis kode dalamyang digunakan untuk menulis kode dalam
CC
►Programmers notepad mempunyaiProgrammers notepad mempunyai
kemampuankemampuan
Highlight sintaksHighlight sintaks
Mendukung beberapa bahasaMendukung beberapa bahasa
Adanya integrasi dengan compilerAdanya integrasi dengan compiler
(menggunakan bahasa C)(menggunakan bahasa C)
5. 5hendri@pens.ac.id
Menambah tools externalMenambah tools external
► Pada Programmer’s Notepad, pilih Tools-Pada Programmer’s Notepad, pilih Tools-
>Options, and pilih “Tools” pada sisi kiri layar>Options, and pilih “Tools” pada sisi kiri layar
6. 6hendri@pens.ac.id
Menambah tools eksternalMenambah tools eksternal
► Pilih schemePilih scheme
► pilih “Add”pilih “Add”
► ““Name” adalah identifikasiName” adalah identifikasi
dari toolsdari tools
► Command adalah perintahCommand adalah perintah
yang digunakanyang digunakan
► Folder %d (Path file)Folder %d (Path file)
► Tool ini menciptakan menuTool ini menciptakan menu
make extcoff pada menumake extcoff pada menu
toolstools
7. 7hendri@pens.ac.id
Contoh Program CContoh Program C
// blinky.c// blinky.c
#include <avr/io.h>#include <avr/io.h> // Standard AVR header// Standard AVR header
#include <avr/delay.h>#include <avr/delay.h> // Delay loop functions// Delay loop functions
int main(void)int main(void)
{{
DDRA = 0xFF; // PORTA is outputDDRA = 0xFF; // PORTA is output
while (1) {while (1) {
for (int i=1; i<=128; i*=2) {for (int i=1; i<=128; i*=2) {
PORTA = i;PORTA = i;
_delay_loop_2(30000);_delay_loop_2(30000);
}}
for (int i=128; i>1; i/=2) {for (int i=128; i>1; i/=2) {
PORTA = i;PORTA = i;
_delay_loop_2(30000);_delay_loop_2(30000);
}}
} // end while} // end while
}}
8. 8hendri@pens.ac.id
Membangun programMembangun program
►Tulis program , simpan dengan namaTulis program , simpan dengan nama
blinky.cblinky.c
►Jalankan MFileJalankan MFile
Makefile -> Main File Name = blinky (no .c)Makefile -> Main File Name = blinky (no .c)
Makefile -> MCU Type = atmega32Makefile -> MCU Type = atmega32
►File -> Save As ke direktori dari sourceodeFile -> Save As ke direktori dari sourceode
blinky.cblinky.c
►Pada Programmer’s Notepad: Select ToolsPada Programmer’s Notepad: Select Tools
->Make All->Make All
9. 9hendri@pens.ac.id
MFileMFile
►Program sederhana yang menghasilkanProgram sederhana yang menghasilkan
Makefiles untuk mengkompile kode CMakefiles untuk mengkompile kode C
►Makefile adalah file konfigurasi bagaimanaMakefile adalah file konfigurasi bagaimana
sourcecode C di kompilesourcecode C di kompile
Chip apa yang digunakan (atmega16)Chip apa yang digunakan (atmega16)
Nama file target (blinky.c)Nama file target (blinky.c)
10. 10hendri@pens.ac.id
GNU MakeGNU Make
► WinAVR menggunakan “Makefiles” ketikaWinAVR menggunakan “Makefiles” ketika
membangun project dengan with GNU Makemembangun project dengan with GNU Make
► GNU Make membangun dependencies dan fileGNU Make membangun dependencies dan file
sourcesource
► Hanya akan menyusun file dari update danHanya akan menyusun file dari update dan
source baru (menghemat waktu)source baru (menghemat waktu)
► Tool yang power full: lihatTool yang power full: lihat
C:WinAVRdocgnumake.html for more infoC:WinAVRdocgnumake.html for more info
11. 11hendri@pens.ac.id
MakefilesMakefiles
►Makefiles adalah tab-sensitive: tab !=Makefiles adalah tab-sensitive: tab !=
spacespace
►Barus yang dimulai dari tab dieksekkusiBarus yang dimulai dari tab dieksekkusi
sebagai perintahsebagai perintah
►Kesalahan Tab menampilkan pesanKesalahan Tab menampilkan pesan
“improper separator” error“improper separator” error
12. 12hendri@pens.ac.id
Contoh MakefileContoh Makefile
## ‘all’ and ‘clean’ targets must be defined!## ‘all’ and ‘clean’ targets must be defined!
# ‘make’ or ‘make all’ will build dependencies in the order they are given# ‘make’ or ‘make all’ will build dependencies in the order they are given
all: begin project2 endall: begin project2 end
begin:begin:
@echo “Starting build”@echo “Starting build”
project2:project2:
avr-gcc project2.cavr-gcc project2.c
end:end:
@echo “Build complete”@echo “Build complete”
clean:clean:
rm project2.orm project2.o
13. 13hendri@pens.ac.id
Debugging menggunakan AvrStudioDebugging menggunakan AvrStudio
► Gunakan editor untuk mengedit flags padaGunakan editor untuk mengedit flags pada
makefile:makefile:
DEBUG = stabsDEBUG = stabs // mengijinkan debugging// mengijinkan debugging
OPT = 0OPT = 0 // mematikan optimasi// mematikan optimasi
► SimpanSimpan makefilemakefile
AVR Studio menyediakan debugging program
dalam Cdan assembly yang dilakukan dengan
menyediakan file COF yang dibangkitkan oleh
kompiler (lihat Makefile)
15. 15hendri@pens.ac.id
Building C code for DebuggingBuilding C code for Debugging
► Go toGo to ToolsTools OptionsOptions ToolsTools
► Pull down thePull down the SchemesSchemes window and click onwindow and click on
C/C++C/C++ optionoption
► AA make extcoffmake extcoff option will appear; clickoption will appear; click OKOK
► Click onClick on ToolsTools againagain
► Click onClick on make extcoffmake extcoff to generate the COF fileto generate the COF file
(this will generate the correct debug file for AVR(this will generate the correct debug file for AVR
Studio that includes the C code information)Studio that includes the C code information)
In the Programmer’s Notepad (WinAVR):
17. 17hendri@pens.ac.id
Debugging dengan AvrStudioDebugging dengan AvrStudio
► Buka theBuka the AVR StudioAVR Studio
Buka the COF fileBuka the COF file
(Anda akan dibantu untuk memilih platform debug(Anda akan dibantu untuk memilih platform debug
dan device )dan device )
SourcecodeSourcecode CC akan muncul pada window utamaakan muncul pada window utama
Optional (Berguna!) untuk melihat code assembly:Optional (Berguna!) untuk melihat code assembly:
go togo to ViewView DissassemblerDissassembler
Anda dapat meletakkan kode assembly di sampingAnda dapat meletakkan kode assembly di samping
kode Ckode C