Kebanyakan software, yang ada dipasaran, untuk membuat program dan meng-upload program tersebut ke UC, menggunakan sistem operasi windows. Pada pembahasan bab ini dari mulai menulis program, meng-compile program dan meng-upload program tersebut menggunakan sistem operasi Ubuntu. Penilisan program untuk UC menggunakan bahsa C dengan mempergunakan avr-gcc. Library avr-gcc ini menggunakan avr libc sama seperti yang dipakai pada kebanyakan software yang berjalan pada windows. Sintaks pada avr libc dapat didownload di http://www.nongnu.org/avr-libc/
Ada dua metode untuk meng-compile dan meng-upload program pada UC AVR, kedua metode tersebut akan dibahas. Sebelum memulai pembahasan maka software Arduino harus diinstall atau didown load. Untuk menginstall Arduino pada ubuntu maka dapat diikuti prosedur sebagai berikut.
1. Aktifkan “Ubuntu Software Centre” yang ada pada Ubuntu. Pastikan komputer terhubung dengan internet.
2. Setelah Ubuntu Software Centre aktif, melalui search enginenya ketik Arduino.
3, Tunggu sampai software “Arduino IDE” ditampilkan.
4. Setelah software Arduino IDE ditampilkan maka pilih “Install”.
5. Setelah software Arduino IDE terinstall pada komputer maka pada komputer sudah mengandung avr-gcc dan avrdude. Komputer sudah siap untuk menulis program, meng-compile program dan meng-upload program ke UC keluarga AVR.
Menulis Program Pada Metode Pertama
Menulis program untuk UC AVR menggunakan “gedit”, editor yang populer pada Ubuntu. Bahasa pemrograman yang dipergunakan adalah bahasa C dengan library AVR Libc.
Contoh 1. Ketiklah program berikut dengan menggunakan editor gedit, kemudian simpan dengan nama “inverter.c”
// Program Untuk mentrigger Inverter 1 phase.
// Frekuensi Inverter 1 KHZ.
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL
#define PORTC1_ON PORTC |= _BV(1)
#define PORTC2_ON PORTC |= _BV(2)
#define PORTC3_ON PORTC |= _BV(3)
#define PORTC4_ON PORTC |= _BV(4)
int main (void)
{
// Proses inisialisasi
DDRC = 0xff; // Port C sebagai output
PORTC = 0x00;
_delay_ms(250);
// penyalaan switch
while(1)
{
PORTC1_ON;
PORTC4_ON;
_delay_ms(1);
PORTC = 0x00;
PORTC2_ON;
PORTC3_ON;
_delay_ms(1);
PORTC = 0x00;
}
return(0);
}
//=================================
// AKHIR PROGRAM INVERTER SATU PHASA
Simpanlah program pada contoh 1 dalam folder “belajar” dengan nama file “inverter.c”.
Meng-Compile program pada Metode Pertama
Untuk meng-compile, untuk menghasilkan file *.hex, pada metode pertama dibutuhkan file “makefile” milik software “WinAVR”. Copy makefile bawaan WinAVR tersebut dan paste kedalam folder belajar dimana file inverter.c berada.
Jika tidak memiliki file tersebut maka ketiklah file make berikut :
Contoh makefile pada Metode Pertama
#============================================
# MCU name “ TULIS NAMA MICROCONTROLLER YANG DIPERGUNAKAN,
# Contoh ATmega8535
MCU = atmega8535
#=============================================
# FREKUENSI CRYSTAL ATAU FREKUENSI CPU.
# PILIH FREKUENSI CPU DENGAN MENGHAPUS TANDA “#”
# JIKA FREKUENSI CPU TIDAK ADA DALAM DAFTAR DIBAWAH MAKA
# DAPAT DIBUAT SENDIRI
# JANGAN DITAMBAHKAN “UL” PADA AKHIR FREKUENSI
# HARGA HARGA TIPIKAL FREKUENSI CPU ADALAH :
# F_CPU = 1000000
# F_CPU = 1843200
# F_CPU = 2000000
# F_CPU = 3686400
# F_CPU = 4000000
# F_CPU = 7372800
# F_CPU = 8000000
# F_CPU = 11059200
# F_CPU = 14745600
# F_CPU = 16000000
# F_CPU = 18432000
# F_CPU = 20000000
F_CPU = 8000000
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
#===============================================
# TULIS NAMA FILE YANG AKAN DIKOMPILE TAMPA AKHIRAN/EKSTENSION “C”
TARGET = inverter
#=================================================
OBJDIR = .
SRC = $(TARGET).c
CPPSRC =
ASRC =
OPT = s
DEBUG = stabs
EXTRAINCDIRS =
CSTANDARD = -std=gnu99
CFLAGS = -g$(DEBUG)
CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT)
CFLAGS += -funsigned-char
CFLAGS += -funsigned-bitfields
CFLAGS += -fpack-struct
CFLAGS += -fshort-enums
CFLAGS += -Wall
CFLAGS += -Wstrict-prototypes
#CFLAGS += -mshort-calls
#CFLAGS += -fno-unit-at-a-time
#CFLAGS += -Wundef
#CFLAGS += -Wunreachable-code
#CFLAGS += -Wsign-compare
CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
CFLAGS += $(CSTANDARD)
CPPFLAGS = -g$(DEBUG)
CPPFLAGS += $(CPPDEFS)
CPPFLAGS += -O$(OPT)
CPPFLAGS += -funsigned-char
CPPFLAGS += -funsigned-bitfields
CPPFLAGS += -fpack-struct
CPPFLAGS += -fshort-enums
CPPFLAGS += -fno-exceptions
CPPFLAGS += -Wall
CFLAGS += -Wundef
CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
ASFLAGS = -Wa,-adhlns=$(<:.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
PRINTF_LIB =
SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
SCANF_LIB =
MATH_LIB = -lm
EXTRALIBDIRS =
EXTMEMOPTS =
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
#===================================================
# JENIS PROGRAMMER YANG DIGUNAKAN
#PADA METODE PERTAMA ISIAN INI DAPAT DIABAIKAN
# PADA KASUS INI PROGRAMMER YANG DIGUNAKAN ADALAH “SP12”
AVRDUDE_PROGRAMMER = sp12
#====================================================
#PORT YANG DIGUNAKAN OLEH PROGRAMMER
#PROGRAMMER SP12 MEMPERGUNAKAN PARALLEL PORT
#PADA KASUS INI DITULIS DENGAN “LPT1”
# PADA METODE PERTAMA PORT PROGRAMMER DAPAT DIABAIKAN
AVRDUDE_PORT = lpt1
#========================================================
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
#=========================================================
#COBA DIGANTI DENGAN
#AVRDUDE_FLAGS = -P $(MCU) -c arduino -P /dev/tty.usb* -b 19200
#=========================================================
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
DEBUG_MFREQ = $(F_CPU)
DEBUG_UI = insight
DEBUG_BACKEND = avarice
GDBINIT_FILE = __avr_gdbinit
JTAG_DEV = /dev/com1
DEBUG_PORT = 4242
DEBUG_HOST = localhost
SHELL = sh
CC = avr-gcc
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
AR = avr-ar rcs
NM = avr-nm
AVRDUDE = avrdude
REMOVE = rm -f
REMOVEDIR = rm -rf
COPY = cp
WINSHELL = cmd
MSG_ERRORS_NONE = Errors: none
MSG_BEGIN = -------- begin --------
MSG_END = -------- end --------
MSG_SIZE_BEFORE = Size before:
MSG_SIZE_AFTER = Size after:
MSG_COFF = Converting to AVR COFF:
MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
MSG_FLASH = Creating load file for Flash:
MSG_EEPROM = Creating load file for EEPROM:
MSG_EXTENDED_LISTING = Creating Extended Listing:
MSG_SYMBOL_TABLE = Creating Symbol Table:
MSG_LINKING = Linking:
MSG_COMPILING = Compiling C:
MSG_COMPILING_CPP = Compiling C++:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
all: begin gccversion sizebefore build sizeafter end
build: elf hex eep lss sym extcoff
elf: $(TARGET).elf
hex: $(TARGET).hex
eep: $(TARGET).eep
lss: $(TARGET).lss
sym: $(TARGET).sym
LIBNAME=lib$(TARGET).a
lib: $(LIBNAME)
begin:
@echo
@echo $(MSG_BEGIN)
end:
@echo $(MSG_END)
@echo
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) --format=avr $(TARGET).elf
sizebefore:
@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
2>/dev/null; echo; fi
sizeafter:
@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
2>/dev/null; echo; fi
gccversion :
@$(CC) --version
program: $(TARGET).hex $(TARGET).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
gdb-config:
@$(REMOVE) $(GDBINIT_FILE)
@echo define reset >> $(GDBINIT_FILE)
@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
@echo end >> $(GDBINIT_FILE)
@echo file $(TARGET).elf >> $(GDBINIT_FILE)
@echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE)
ifeq ($(DEBUG_BACKEND),simulavr)
@echo load >> $(GDBINIT_FILE)
endif
@echo break main >> $(GDBINIT_FILE)
debug: gdb-config $(TARGET).elf
ifeq ($(DEBUG_BACKEND), avarice)
@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
@$(WINSHELL) /c pause
else
@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
$(DEBUG_MFREQ) --port $(DEBUG_PORT)
endif
@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
COFFCONVERT = $(OBJCOPY) --debugging
COFFCONVERT += --change-section-address .data-0x800000
COFFCONVERT += --change-section-address .bss-0x800000
COFFCONVERT += --change-section-address .noinit-0x800000
COFFCONVERT += --change-section-address .eeprom-0x810000
coff: $(TARGET).elf
@echo
@echo $(MSG_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
extcoff: $(TARGET).elf
@echo
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
%.hex: %.elf
@echo
@echo $(MSG_FLASH) $@
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
%.eep: %.elf
@echo
@echo $(MSG_EEPROM) $@
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
%.lss: %.elf
@echo
@echo $(MSG_EXTENDED_LISTING) $@
$(OBJDUMP) -h -S $< > $@
%.sym: %.elf
@echo
@echo $(MSG_SYMBOL_TABLE) $@
$(NM) -n $< > $@
.SECONDARY : $(TARGET).a
.PRECIOUS : $(OBJ)
%.a: $(OBJ)
@echo
@echo $(MSG_CREATING_LIBRARY) $@
$(AR) $@ $(OBJ)
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
@echo
@echo $(MSG_LINKING) $@
$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
$(OBJDIR)/%.o : %.c
@echo
@echo $(MSG_COMPILING) $<
$(CC) -c $(ALL_CFLAGS) $< -o $@
$(OBJDIR)/%.o : %.cpp
@echo
@echo $(MSG_COMPILING_CPP) $<
$(CC) -c $(ALL_CPPFLAGS) $< -o $@
%.s : %.c
$(CC) -S $(ALL_CFLAGS) $< -o $@
%.s : %.cpp
$(CC) -S $(ALL_CPPFLAGS) $< -o $@
$(OBJDIR)/%.o : %.S
@echo
@echo $(MSG_ASSEMBLING) $<
$(CC) -c $(ALL_ASFLAGS) $< -o $@
%.i : %.c
$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
# Target: clean project.
clean: begin clean_list end
clean_list :
@echo
@echo $(MSG_CLEANING)
$(REMOVE) $(TARGET).hex
$(REMOVE) $(TARGET).eep
$(REMOVE) $(TARGET).cof
$(REMOVE) $(TARGET).elf
$(REMOVE) $(TARGET).map
$(REMOVE) $(TARGET).sym
$(REMOVE) $(TARGET).lss
$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o)
$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
$(REMOVE) $(SRC:.c=.i)
$(REMOVEDIR) .dep
$(shell mkdir $(OBJDIR) 2>/dev/null)
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
.PHONY : all begin finish end sizebefore sizeafter gccversion \
build elf hex eep lss sym coff extcoff \
clean clean_list program debug gdb-config
#======================================================
#AKHIR DARI MAKE FILE
Pada contoh file Make Metode Pertama, hanya tiga item yang perlu diperhatikan atau diisikan, item lainnya dapat diabaikan. Ketiga item tersebut adalah :
1. Microcontroller yang dipergunakan. Ditandai dengan tulisan
# MCU name “ TULIS NAMA MICROCONTROLLER YANG DIPERGUNAKAN, Contoh ATmega8535. Pada contoh ini UC yang dipergunakan adalah ATmega8535 sehingga pada MCU diisi dengan :
MCU = atmega8535
2. Frekuensi Crystal atau Frekuensi CPU. Ditandai dengan tulisan.
# FREKUENSI CRYSTAL ATAU FREKUENSI CPU.
Pada kasus ini fekuensi clock sebesar 8 MHz.
3. Nama file, dalam bahsa C, yang akan di-compile. Ditandai dengan tulisan
# TULIS NAMA FILE
# TULIS NAMA FILE YANG AKAN DIKOMPILE TAMPA AKHIRAN/EKSTENSION “C”
Dalam kasus ini file yang akan di-compile adalah “inverter.c” sehingga pada target ditulis dengan:
TARGET = inverter
Setelah ketiga item tersebut diisikan maka program, yang ditulis dalam bahasa c, siap untuk di-compile.
Sampai disini berarti kita telah memiliki program dalam bahasa c dengan nama inverter.c dan makefile dimana kedua file tersebut disimpan dalam folder belajar atau lebih detailnya dalam folder:
/home/Documents/belajar/. Langkah berikutnya kita meng-compile inverter.c, dengan bantuan compiler avr-gcc, sehingga menghasilkan file dengan ekstension hex atau dalam format intel hex. Untuk itu ikuti langkah langkah berikut :'
1. buka terminal.
2. pindah ke direktori belajar, perintah untuk pindah ke direktori tersebut adalah :
cd Documents/belajar
contoh hasil tampilan diterminal seperti :
supriono@supriono-ADVAN:~/Documents/belajar$
setelah itu ketik “ls” kemudian tekan enter, hasil tampilan diterminal sebagai berikut :
supriono@supriono-ADVAN:~$ cd Documents/belajar
supriono@supriono-ADVAN:~/Documents/belajar$ ls
inverter.c Makefile
supriono@supriono-ADVAN:~/Documents/belajar$
terlihat ada dua file yaitu inverter.c dan Makefile. Kemudian ketik “make all” dan tekan enter.
Setelah proses compilasi selesai coba ketik “ls” kemudian tekan enter, seharusnya terdapat file dengan ekstension hex, atau diterminal sebagai berikut :
supriono@supriono-ADVAN:~/Documents/belajar$ ls
inverter.c inverter.elf inverter.lss inverter.map inverter.sym
inverter.eep inverter.hex inverter.lst inverter.o Makefile
supriono@supriono-ADVAN:~/Documents/belajar$
Jika sudah terdapat file dengan nama “inverter.hex” selamat anda telah sukses membuat file untuk diisi ke microcontroller.
Meng-Upload program ke Microcontroller pada Metode Pertama
Setelah file dengan format intel hex telah kita buat, maka langkah berikutnya adalah meng-upload file tersebut ke microcontroller. Pada kasus ini programmer yang digunakan adalah arduino uno. Untuk menjadikan arduino sebagai programmer mohon dilihat pada pembahasan “Fuse Byte” dengan sub pokok bahasan “Mempergunakan Arduino sebagai Programmer” .
Perintah untuk meng-upload adalah :
1. buka terminal.
2. pindah ke direktori belajar yaitu : cd Documents/belajar
3. ketiklah perintah berikut :
avrdude -p m8535 -c arduino -P /dev/tty.usb* -b 19200 -U flash:w:inverter.hex:m
Catatan : Pada kasus ini UC yang digunakan ATMega8535.
4. Semoga sukses.
5. Meng-Compile dan Meng-Upload program pada metode pertama selasai.
Meng-Compile dan Meng-Upload program pada Metode Kedua
Pada metode kedua meng-compile dan meng-upload program sekali jalan. Make file juga menjadi lebih sederhana. Sebelumnya buatlah folder dengan nama belajar2 pada folder Documents atau lebih lengkapnya
/home/Documents/belajar2.
Prosedur metode kedua adalah :
1. ketiklah program berikut dengan menggunakan gedit kemudian simpan dalam folder belajar2 dengan nama “main.c”
// Program Untuk mentrigger Inverter 1 phase.
// Frekuensi Inverter 1 KHZ.
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL
#define PORTC1_ON PORTC |= _BV(1)
#define PORTC2_ON PORTC |= _BV(2)
#define PORTC3_ON PORTC |= _BV(3)
#define PORTC4_ON PORTC |= _BV(4)
int main (void)
{
// Proses inisialisasi
DDRC = 0xff; // Port C sebagai output
PORTC = 0x00;
_delay_ms(250);
// penyalaan switch
while(1)
{
PORTC1_ON;
PORTC4_ON;
_delay_ms(1);
PORTC = 0x00;
PORTC2_ON;
PORTC3_ON;
_delay_ms(1);
PORTC = 0x00;
}
return(0);
}
// ============================================
// AKHIR PROGRAM
//=============================================
2. ketiklah make file berikut dengan mengunakan gedit kemudian simpan dalam folder belajar2 dengan nama “makefile”
# Nama: Makefile
# Author: SUPRIONO
# Copyright: BEBAS DIDISTRIBUSIKAN SEMOGA MENJADI AMALAN JARIAH
# DEVICE ....... UC keluarga AVR yang akan di compile atau diprogram
# CLOCK ........ Clock AVR target dalam Hz
# OBJECTS ...... Nama file yang ditulis dengan bahasa c .
# Pada metode ini semua program dalam bahasa c diberi nama “main.c”
# PROGRAMMER … Programmer yang dipergunakan untuk meng-upload
# contoh programmer usbasp, avr isp mkII, arduino, sp12 dll
# FUSES ........ untuk memprogram fuse byte. Pergunakan ini sekali saja, setelah itu di non-aktifkan.
# sebaiknya memprogram Fuse Byte tidak pada makefile (difile ini), untuk lebih lengkapnya
# dalam memprogram Fuse Byte lihat pembahasan tentang FUSE BYTE MICROCONTROLLER
DEVICE =atmega8535
CLOCK = 8000000
PROGRAMMER = -c arduino -P /dev/tty.usb* -b 19200
OBJECTS = main.o
# FUSES = -U lfuse:w:0x64:m -U hfuse:w:0xdd:m -U efuse:w:0xff:m
########################################################
########################################################
AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE)
COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE)
all: main.hex
.c.o:
$(COMPILE) -c $< -o $@
.S.o:
$(COMPILE) -x assembler-with-cpp -c $< -o $@
.c.s:
$(COMPILE) -S $< -o $@
flash: all
$(AVRDUDE) -U flash:w:main.hex:i
#=======================================================
# AKTIFKAN FUSE INI BILA AKAN MEMPROGRAM FUSE BYTE
# fuse:
# $(AVRDUDE) $(FUSES)
#install: flash fuse
#======================================================
clean:
rm -f main.hex main.elf $(OBJECTS)
main.elf: $(OBJECTS)
$(COMPILE) -o main.elf $(OBJECTS)
main.hex: main.elf
rm -f main.hex
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
disasm: main.elf
avr-objdump -d main.elf
cpp:
$(COMPILE) -E main.c
#======================================================
# AKHIR DARI MAKEFILE METODE KEDUA
Sampai disini dalam folder belajar2 ada dua file yaitu main.c dan Makefile. Langkah berikutnya adalah :
3. Persiapkan programmer. Pada kasus ini programmer yang dipergunakan adalah arduino. Untuk menjadikan arduino sebagai programmer lihat pembahasan “Fuse Byte Microcontroller” dengan sub pokok bahasan “Mempergunakan Arduino sebagai Programmer” .
4. Buka terminal, kemudian pindah ke direktori belajar2. Ketik “make flash” kemudian tekan enter.
5. Microcontroller telah terisi program, Semoga Sukses.
Catatan.
1. Pada metode pertama proses compile dan up load dapat dikerjakan dalam satu kali jalan seperti halnya metode kedua. Untuk dapat melakukan hal tersebut maka pada Makefile perlu juga diisi dengan benar “AVRDUDE_PROGRAMMER = xxxxxx” dan “AVRDUDE_PORT = xxxxxxx”, Perintah pada terminal untuk meng-compile dan meng-upload sekali jalan adalah “make program”.
2. Pada Metode Pertama. Setelah kita melakukan “make all' kemudian “make program” ternyata program tersebut tidak sesuai dengan yang diinginkan. Untuk mengisi ulang (re Upload) maka sebelum melakukan “make all” dan “make program”, maka sebaiknya lakukan dahulu “make clean”. Agar folder tersebut bersih.
LAMPIRAN
1. JENIS JENIS PROGRAMMER YANG DISUPPORT
LAMPIRAN
2. MICROCONTROLLER AVR YANG DISUPPORT
(*)
The AT90S2323 and ATtiny22 use the same algorithm.
(**)
Flash addressing above 128 KB is not supported by all programming
hard-
ware.
Known to work are jtag2, stk500v2, and bit-bang programmers.
(***)
The ATtiny11 uses the same algorithm, but can only be programmed in
high-voltage
serial mode.
Tidak ada komentar:
Posting Komentar