37
telah
menyediakan beberapa
library
yang
sangat
berguna
untuk
pemorgraman
mikrokontroler
AVR.
Beberapa
library
tersebut
adalah
seperti
fungsi
interrupt
service
routine
(ISR),
tipe
data,
register
register
AVR,
operasi-operasi
matematika
dan
fungsi
matematika
lainnya
seperti
sinus
dan
cosinus.
AVRGCC
juga
mempunyai
fitur
untuk
memasukkan
potongan
program
assembly
ke
dalam
program
C
yang
ditulis.
Biasanya
fitur
ini
akan
sangat
berguna
untuk
program program yang
time
critical
mengingat
perhitungan
waktu dengan Assembly
lebih presisi dibandingkan C. Fitur ini disebut juga
inline ASM.
Interrupt
service
routine
merupakan program
rutin
yang
akan
dieksekusi
begitu
interrupt
dipicu.
Contoh
penggunaan
interrupt
service
routine
pada
AVRGCC
adalah
sebagai berikut:
ISR(INT0_vect){
/* tulis program rutin bila interrupt 0 dipicu disini */
PORTA=0xff;
}
Untuk
jenis
interrupt
lain,
fungsi
ISR()
tetap
digunakan,
hanya
saja
terdapat
perubahan pada isi di dalam ( ) sesuai dengan jenis interrupt yang ingin ditangani.
AVRGCC mempunyai
operasi
bitwise tambahan
yang sangat
berguna
untuk
melakukan manipulasi bit. Operasi tersebut adalah _BV(x), dimana
x
merupakan angka
0-7.
_BV(x)
berfungsi
untuk
memberikan logika 1
pada bit
ke-x dari 8
bit.
Contoh bila
diberikan perintah _BV(3),
maka akan dibuat 8 bit dan pada bit ke-3 diberi
nilai
logika
1.
Bit
yang
terbentuk adalah 00010000.
Contoh aplikasi _BV(x)
yang paling
sederhana
adalah
pada
pemrograman running
LED.
Berikut
ini
adalah
contoh
pemrogramannya
dengan AVRGCC:
|