Oke Temen-Temen sekarang saya mau share nih tentang referensi untuk pemograman C pada Code vision AVR nih semoga membantu temen-temen yang masih baru" belajar :)
A. Mengenal Bahasa C
Berikut sebuah program sederhana :
Conto program sederhana pada program C*/
#include
int main ( )
{
return 0;
}
Dokumentasi Program
Memberikan dokumentasi pada program sangat berguna untuk membantu
memperjelas alur logika penyusunan program. Karena tujuannya hanya
sebagai dokumentasi, komentar-komentar yang dituliskan pada program
tidak diproses oleh compiler. Komentar dapat dimulai dengan simbol dua
karakter yang terdiri dari garis miring dan asterisk (/*) dan diakhiri
dengan asterisk dan garis miring.
Karakter komentar /* dapat diletakkan dimana saja didalam program dan
dapat mencakup lebih dari satu komentar, dengan syarat setiap /* harus
ditutup dengan */. Pada awal program, komentar yang diberikan biasanya
bertujuan untuk menjelaskan apa yang dilakukan oleh program, sedangkan
pada bagian probram yang lain tujuannya adalah untuk memperjelas logika
program.
Dalam membeikan komentar untuk dokumentasi program, ada beberapa hal yang perlu diperhatikan, diantaranya:
1. Komentar hendaklah diberikan pada tempat-tempat yang bias menimbulkan kekaburan pengertian.
2. Beri
komentar ditempat yang perlu saja, misalnya pada awal program untuk
menjelaskan secara ringkas tujuan program, pada awal blok pernyataan
untuk menjelaskan kumpulan tugas yang dilakukan , pada pernyataan
keputusan untuk menjelaskan kondisi yang harus dipenuhi dalam
pengambilan keputusan.
3. Komentar tidak bisa dibuat bertingkat , yaitu adanya komentar dalam komentar, misalnya;
/* Komentar awal /* Komentar lagi /* Komentar berikutnya*/
Pengarah Prapengolahan
Dalam mengolah kode-kode program, compiler C melaksanakan beberapa
tahapan yaitu melakukan prapengolahan untuk melakukan persiapan yang
diperlukan sebuah berkas program kompilasi. Di dalam program pengarah
prapengolahan diawali oleh karakter # yang dituliskan pada baris-baris
pertama program.
Prapengolahan memperlakukan berkas program sebagai sederetan baris
teks: membaca, mengolah, dan menuliskan kembali hasil pengolahan kedalam
berkas semula. Prapengolah membuang semua baris perintah prapengolahan
dari berkas sumber dan melakukan perubahan terhadap berkas sumber sesuai
dengan arahan perintah yang diberikan. Secara garis besar pelayanan
prapengolah dibagi dalam tiga kelompok :
1 1) Penyisipan berkas (#include),
2 2) Pendefenisian makro (#define), dan
3 3) Pengarah kendali compiler (#ifdef, #ifndef, dll)
Dalam menyertakan berkas judulyang diperlukan olefh fungsi input dan outputyang digunakan dalam program : #include dan
untuk mendefenisikan sebuah konstanta (pi): #define PI 3.1459,
sementara itu #ifdef diguakan apabila hendak melakukan kompilasi
terhadap satu bagian program hanya apabila sebuah ekspresi tertentu
telah didefenisikan menggunakan #define. Standar ANSI C menambahkan
beberapa pengarah prapengolahan tambahan; pengujian alternatif,
pernyataan instruksi, pendeteksian kesalahan, pengubahan pengenal
menjadi string dan penggabungan pengenal.
Deklarasi Global
Pada bagian deklarasi global terdapat pendeklarasian variable dan
prototipe fungsi. Semua variable y ang dideklarasikan pada bagian ini
akan dikenal oleh semua bagian program yang terdapat
dibawahnya. Sementara itu prototipe fungsi adalah sebuah deklarasi tentang akan digunakannya sebuah fungsi didalam program. Ada tiga unsur yang perlu disebutkan: jenis data yang dikembalikan oleh fungsi, nama fungsi dan daftar argumen yang diberikan pada fungsi yang diberi jumlah argumen (arity) dan jenis data masing-masing argumen.
dibawahnya. Sementara itu prototipe fungsi adalah sebuah deklarasi tentang akan digunakannya sebuah fungsi didalam program. Ada tiga unsur yang perlu disebutkan: jenis data yang dikembalikan oleh fungsi, nama fungsi dan daftar argumen yang diberikan pada fungsi yang diberi jumlah argumen (arity) dan jenis data masing-masing argumen.
Fungsi Main ( )
Fungsi main ( ) memegang peranan yang penting pada sebuah program.
Fungsi ini merupakan fungsi utama pada setiap program C dimana eksekusi
keseluruhan program dimulai. Barapapun banyaknya fungsi yang terdapat
pada sebuah program C, main ( ) adalh fungsi utama yang akan
dilaksanakan oleh compiler. Contoh program yang memperlihatkan struktur
fungsi main ( ) sederhana.
/* Nama file : Hello.c
Menampilkan teks dilayar*/
#include
int main ( )
{
printf(“hello, world!\n”);
return 0;
}
Menampilkan teks dilayar*/
#include
int main ( )
{
printf(“hello, world!\n”);
return 0;
}
Pada contoh diatas fungsi main ( ) tidak memerlukan argumen, badan
fungsi main ( ) tidak memiliki bagian deklarasi lokal, dan hanya
memiliki sebuah pernyataan yang dapat dieksekusi, berupa fungsi output
printf ( ). Kode program (pernyataan) yang dapat dieksekusi adalah kode
program yang merupakan baris-baris instruksi yang harus dilaksanakan
oleh kompiler. Kode program ini dapat berupa input/output, konstruksi
runtunan, konstruksi keputusan dan konstruksi pengulangan. Dalam badan
fungsi main ( ) terdapat pula bagian deklarasi lokal yang dimaksudkan
untuk mendeklarasikan variable-variabel dan prototipe-prototipe fungsi.
semua variable dan prototipe fungsi ini bersifat lokal terhadap main (
), dalam arti hanya dikenal oleh main ( ).
Fungsi Buatan Pemrogram
Selain main ( ) yang mempunyai kedudukan khusus dalam sebuah program,
terdapat pula fungsi-fungsi buatan pemrogram. Pada fungsi ini dapat
diberikan deklarasi prototype fungsi lain secara local, sehingga hanya
dikenal oleh fungsi tersebut. Kode program yang dapat dieksekusi juga
dapat berupa fungsi input/output standar, konstruksi runtunan,
konstruksi keputusan, dan konstruksi pengulangan.
Pembatas
Setelah pendefenisian fungsi terdapat kurung kurawal buka “{“ dan
kurung kurawal tutup “}” yang menunjuk akhir blok fungsi, kurung kurawal
ini disebut pembatas (delimeters). Dalam badan program kurung kurawal
juga dapat digunakan untuk membatasi pernyataan majemuk yang dimiliki
oleh sebuah blok kode program. Selain kurung kurawal juga terdapat
beberapa pembatas lain, diantaranya: [ ], < >, ( ), “ “, dan ‘ ‘.
Akhir Pernyataan
Setiap pernyataan (statement) dalam C diakhiri dengan titik koma ( ; )
yang berperan untuk memberitahu compiler akhir pernyataan. Carriage
return yang diperoleh sewaktu menekan tombol bukan
penunjuk akhir pernyataan, karena C mengabaikan semua karakter yang
disebut karakter-karakter whitespace, yaitu spasi, tabulator dan
carriage return (newline).
Tipe Data
Adalah suatu nilai yang dapat dinyatakan dalam bentuk konstanta atau
variabel dan operator. Konstanta menyatakan nilai yang tetap, sedangkan
variabel menyatakan nilai yag dapat berubah-ubah selama eksekusi
berlangsung.
Tipe data simple merupakan tipe data bawaan dari C++, tipe data ini terdiri dari beberapa tipe data yaitu:
· Tipe data integral merupakan tipe data yang terdiri dari bilangan dengan range yang berbeda-beda.
· Floating
merupakan tipe data untuk bilangan desimal. Untuk semua Turbo C++, type
floating-point yang menggunakan format-format IEEE floating-point
digunakan oleh intel 8087. Type float menggunakan real format 32-bit
IEEE. Type double menggunakan real format 64-bit IEEE. Type long double
menggunakan extended real format 80-bit IEEE.
Address merupakan tipe data yang digunakan untuk menunjuk suatu alamat
memori. Sedangkan tipe data structured merupakan tipe data bentukan.
Identifiers
Identifiers adalah untaian satu atau lebih huruf, angka, atau garis
bawah ( _ ). Panjang dari identifier, tidak terbatas, walaupun untuk
beberapa kompiler hanya 32 karakter pertama saja yang dibaca sebagai
identifier (sisanya diabaikan). Identifier harus selalu diawali dengan
huruf atau garis bawah ( _ ). Ketentuan lainnya yang harus diperhatikan
dalam menentukan identifier adalah tidak boleh menggunakan keyword dari
bahasa C.
Dekalarasi Variabel
Untuk menggunakan variable pada C, kita harus mendeklarasikan tipe data
yang akan digunakan. Sintaks penulisan deklarasi variable adallah
dengan menuliskan tipe data yang akan digunakan diikuti dengan
identifier yang benar, contoh :
int a;
float mynumber;
float mynumber;
Jika akan menggunakan tipe data yang sama untuk beberapa identifier maka data dituliskan dengan tanda koma, contoh :
int a, b, c;
Tipe data integer (char, long, short, dan int) dapat berupa signed atau
unsigned tergantung dari kisaran nilai yang direpresentasikan.
Dilakukan dengan menyertakan keyword signed atau unsigned sebelum tipe
data, contoh :
unsigned short NumberofSons;
signed int MyAccountBalance;
signed int MyAccountBalance;
jika tidak ditulis maka akan dianggap signed.
Inisialisasi Variabel
Ketika mendeklarasikan variable local, kita dapat memberikan nilai tertentu. Sintaks penulisan sbb :
Tipe identifier = initial_value ;
Misalkan kita akan mendklarasikan variable int dengan nama a yang bernilai 0, maka dapat dituliskan :
int a = 0;
Atau dengan cara lain, yaitu menyertakan nilai yang akan diberikan dalam tanda ( ) :
tipe identifier (initial_value);
Konstanta : Literals
Konstanta adalah ekspesi dengan nilai yang tetap. Terbagi dalam nilai
integer, nilai floating point karakter, dan string.
Nilai Integer
Merupakan nilai konstanta numeric yang meng-identifikasikan nilai
integer decimal. Karena merupakan nilai numeric, maka tidak memerlukan
tanda kutip ( “ ) maupun karakter khusus lainnya. Contoh :
1776
707
-273
707
-273
C memungkinkan kita untuk menggunakan nilai octal (base 8) dan
heksadesimal (base 16). Jika menggunakn octal harus digunakan dengan
karakter 0 (karakter nol), dan untuk heksadesimal diawali dengan
karakter 0X (nol, X). contoh :
75 // decimal
0113 // octal
0X4b // heksadecimal
0113 // octal
0X4b // heksadecimal
Nilai Floating Point
Merepresentasikan
nilai decimal dan / atau eksponen, termasuk titik decimal dan karakter e
(yang merepresentasikan “ dikali 10 pangkat n “, dimana n merupakan
nilai integer) atau keduanya. Contoh :
3.14159 // 3.14159
6.02e23 // 6.02 * 10^23
1.6e-19 // 1.6 * 10^-19
3.0 // 3.0
6.02e23 // 6.02 * 10^23
1.6e-19 // 1.6 * 10^-19
3.0 // 3.0
Konstanta Define (#define)
Kita dapat mendefenisikan sendiri nama untuk konstanta yang akan kita
pergunakan, dengan menggunakan preprocessor directive #define. Dengan
format :
#define identifier value
Contoh :
#define PI 3.14159
#define NEWLINE ‘\n’
#define WIDTH 100
#define NEWLINE ‘\n’
#define WIDTH 100
Deklarasi Konstanta (const)
Dengan prefix const kita dapat mendeklarasikan konstanta dengan tipe
yang spesifik seperti yang kita inginkan. Contoh :
const int width = 100;
constchar tab = ‘t’;
const zip = 12440;
constchar tab = ‘t’;
const zip = 12440;
Jika tipe data tidak disebutkan, maka compiler akan mengsumsikan sebagai int.
Operator
Operator yang disediakan C berupa keyword atau karakter khusus.
Operator-operator ini cukup penting untuk diketahui karena merupakan
salah satu dasar bahasa C.
Assignation ( = )
Operator ini digunakan untuk membeikan nilai ke suatu variable.
a = 5 ;
Memberikan nilai integer 5 ke variable a. Sisi kiri dari operator
disebut lvalue (left value) dan sisi kanan disebut rvalue (right value).
lvalue harus selalu berupa variable dan sisi kanan berupa konstanta,
variable, hasil dari suatu operasi atau kombinasi dari semuanya. Contoh :
Int a, b; // a : ? b : ?
a = 10; // a : 10 b : ?
b = 4; // a : 10 b : 4
a = b; // a : 4 b : 4
b = 7; // a : 4 b : 7
a = 10; // a : 10 b : ?
b = 4; // a : 10 b : 4
a = b; // a : 4 b : 4
b = 7; // a : 4 b : 7
Hasil dari contoh diatas , a bernilai 4 dan b bernilai 7.
Contoh :
a = 2 + (b = 5);
equivalent dengan :
b = 5
a = 2 + b
a = 2 + b
Arithmetic Operators ( +, -, *, / , % )
+ addition
- substraction
* multiplication
/ division
% module
- substraction
* multiplication
/ division
% module
Increase (++) and decrease (--).
Contoh :
a++;
a+=1;
a=a+1;
a+=1;
a=a+1;
Operator increase dan decrease dapat digunakan sebagai prefix dan
suffix. Dengan kata lain dapat dituliskan sebelum identifier variable
(++a) atau sesudahnya (a++). Operator increase yang digunakan sebagai
prefix (++a), letak perbedaan :
Example 1 Example 2
B=3; B=3;
A=++B; A=B++;
// A is 4, B is 4 // A is 3, B is 4
A=++B; A=B++;
// A is 4, B is 4 // A is 3, B is 4
Relasional Operators (= =, !=, >, <, >=, <=)
Untuk mengvaluasi antara dua ekspresi, dapat digunakan operator
relasional. Hasil dari operator ini adalah nilai bool yaitu hanya berupa
true atau false, atau dapat juga dalam nilai int, 0 untuk
merepresentasikan “false” dan 1 untuk merepresentasikan “true”.
Operator-operator relasional pada C :
= = Equal (sama dengan)
!= Different (Beda)
> Greater than (Lebih Besar)
< Less than (Lebih Kecil)
>= Greater or equal then (Lebih Besar sama dengan)
<= Less or equal then (Lebih Kecil sam dengan)
!= Different (Beda)
> Greater than (Lebih Besar)
< Less than (Lebih Kecil)
>= Greater or equal then (Lebih Besar sama dengan)
<= Less or equal then (Lebih Kecil sam dengan)
Logic Operators ( !, &&, || )
Operator ! equivalent dengan operasi Boolean NOT, hanya mempunyai 1
operand, berguna untuk membalikkan nilai dari operand yang bersangkutan.
Contoh :
! (5 = = 5) returns false because the expression at is right (5 = = 5) would be true.
! (6 =<= 4) returns true because (6 <=4) be false.
! true returns false.
!false returns false.
! (6 =<= 4) returns true because (6 <=4) be false.
! true returns false.
!false returns false.
Operator logika && dan || digunakan untuk mengevaluasi 2
ekspresi dan menghasilkan 1 nilai akhir. Mempunyai arti sama dengan
logika Boolean AND dan OR.
Conditional Operator ( ? )
Operator kondisional mengevaluasi ekspresi dan memberikan hasil
tergantung dari hasil evaluasi (true atau false ). Sintaks :
conditional ? result1 : result2
Jika kondisi true maka akan menghasilkan result1, jika tidak akan menghasilkan result2.
7 = = 5 ? 4 : 3 returns 3 since 7 is not equal to 5.
7 = = 5 + 2 ? 4 :3 returns 4 since 7 is equal to 5 + 2.
5 > 3 ? a : b returns a, since 5 is greater than 3.
a > b ? a :b returns the greater one, a or b.
7 = = 5 + 2 ? 4 :3 returns 4 since 7 is equal to 5 + 2.
5 > 3 ? a : b returns a, since 5 is greater than 3.
a > b ? a :b returns the greater one, a or b.
Explisit Type Casting Operators
Explisit type casting operators memungkinkan untuk mengkonversikan tipe
data yang sudan diberikan ke tipe data ynag lain. Ada beberapa cara
yang dilakukan dalam C, yang paling populer yaitu tipe baru dituliskan
dalam tanda kurung ( ), contoh :
int i;
float f = 3.14;
i = (int) f;
float f = 3.14;
i = (int) f;
Contoh diatas mengkonversikan nilai 3.14 menjadi nilai integer (3).
Tipe casting operator yang digunakan (int). cara lainnya :
i = int ( f );
Operator ini menerima 1 parameter, dpat berupa type variable atau
variable itu sendiri dan mengembalikan ukuran type atau object tersebut
dalam bytes :
a = sizeof (char);
Contoh diatas akan memberikan nilai 1 ke a karena char adalah tipe data
dengan panjang 1 byte. Nilai yang diberikan ole sizeof bersifat
konstan.
B. Instruksi-instruksi pada Codevision AVR.
Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan Codevision AVR. AVRSTUDIO merupakan software khusus untuk bahasa assembly yang mempunyai fungsi sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi, dan download program ke IC mikrokontroler AVR. Sedangkan Codevision AVR merupakan software C-cross compiler, dimana program dapat ditulis dalam bahasa C, Codevision memiliki IDE (Integrated Development Environment) yang lengkap, di mana penulisan program, compile, link, pembuatan kode mesin (assembler) dan download program ke chip AVR dapat dilakukan pada codevision, selain itu ada fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroler yang sudah deprogram. Proses download program ke IC mikrokontroler AVR dapat menggunakan system download secara ISP (In-System Programming). In-System programmable Flash on-chip mengizinkan memori program untuk diprogram ulang dalam system menggunakan hubungan serial SPI (Andrianto, 2008: 17).
Berikut ini penjelasan penggunaan program dalam bahasa C di software Codevision AVR.
Preprocessor (#):
Digunakan untuk memasukkan (include) text dari file lain,
mendefinisikan macro yang dapat mengurangi beban kerja pemrograman dan
meningkatkan legibility source code (mudah dibaca).
#define : Digunakan untuk mendefinisikan macro
Contoh : #define ALFA oxff
#define SUM(a,b) a+b
#define sensor PIN.2
#define pompa PORTB.o
Komentar
Penulisan komentar untuk beberapa baris komentar sekaligus
/*
…komentar
..*/
Penulisan komentar untuk satu baris saja
//…komentar…
1. Program Kontrol
a. Percabangan
Perintah if dan if…else…
Perintah if dan if…else.. digunakan untuk melakukan operasi percabangan bersyarat. Sintaks penulisan if dapat ditulis sebagai berikut :
if();
Sintaks perintah if …else …dapat dituliskan sebagai berikut:
if();
else ;
b. Looping (pengulangan)
Looping adalah pengulangan satu atau beberapa perintah sampai mencapai keadaan tertentu. Ada tiga perintah looping, yaitu: for …,while …, dan do…while…. Sintaks loop for dapat dituliskan sebagai berikut :
for
Untuk pengulangan yang melakukan proses increment
for(nama_variable = nilai_awal;syarat_loop;nama_variable ++)
{
statement_yang_diulang;
}
//untuk pengulangan yang melakukan proses decrement
For(nama_varible=nilai_awal;syarat_loop;nama_variable --)
{
Statement_yang_diulang;
}
Syarat_loop adalah pernyataan relasional yang menyatakan syarat berhentinya pengulangan, biasanya barkaitan dengan variable kontrol, nama_variable++ dan nama_variable--, menyatakan proses increment dan proses decrement pada variable kontrol.
while
Perintah while dapat melakukan looping apabila persyaratannya benar. Sintaks perintah while dapat dituliskan sebagai berikut :
nama_varible = nilai_awal;
while (syarat_loop)
{
Statement_yang_akan_diulang;
Nama_variable++;
}
2. Library Function pada CodeVisionAVR
a. Fungsi Input/Output
Fungsi-fungsi input/Output berada didalam file stdio.h, pada subdirektori …\INC. berikut ini beberapa fungsi I/O dasar yang disediakan pada CodeVision.
- char getchar(void) : menghasilkan nilai balikan berupa karakter yang diterima dari UART, menggunakan system polling (menerima data serial)
- void putchar(char c): mengirim karakter ’c’ menggunakan UART, menggunakan system polling (mengirimkan data serial)
Sebelum menggunakan fungsi ini, lakukan terlebih dahulu pengaturan konfigurasi komunikasi serial:
1) Inisialisasi baudrate UART
2) Mengaktifkan transmitter UART
3) Mengaktifkan receiver UART
Fungsi I/O yang lebih tinggi lainnya menggunakan fungsi getchar dan putchar, seperti:
- void puts(char *str) : output, menggunakan putchar, null mengakhiri karakter string, berlokasi di SRAM.
- void putsf(char flash *str) : output, menggunakan putchar, null mengakhiri karakter string, berlokasi di FLASH.
- void printf(char flash *fmtstr[ , arg1, arg2, ...]) : output text yang terformat, menggunakan putchar, sesuai dengan format specifiers dalam fmtstr string.
b. Fungsi Matematika
Fungsi
ini berada di dalam file math.h, pada subdirektori ...\INC. Berikut ini
sebagian dari beberapa fungsi-fungsi matematika yang disediakan pada
CodeVision.
- unsigned char cabs(signed char x): menghasilkan nilai absolute dari byte x
- unsigned int abs(int x): menghasilkan nilai absolute dari bilangan integer x
- unsigned long labs(long x): menghasilkan nilai absolute dari bilangan long integer x.
- float fabs(float x): menghasilkan nilai absolute dari bilangan floating point x
- signed char cmax(signed char a,signed char b) : menghasilkan nilai maksimum dari byte a dan b.
- int max(int a,int b) : menghasilkan nilai maksimum dari integer a dan b.
c. Fungsi LCD
Fungsi LCD ditunjukkan untuk memudahkan interfacing antara program C dan modul alphanumeric LCD yang dibuat dengan chip Hitachi HD44780 atau yang serupa chip Hitachi HD44780. fungsi ini berada di dalam file lcd.h, pada subdirektori …\INC. Header ini harus dimasukan (include) jika kita akan menggunakan fungsi-fungsi LCD. Sebelum menggunakan fungsi ini, terlebih dahulu harus diatur port
mikrokontroler yang digunakan untuk komunikasi dengan modul LCD. Format
LCD dalam lcd.h mendukung: 1x8, 2x12, 3x12, 1x16, 2x16, 2x20, 4x20,
2x24, dan 2x40 karakter. Fungsi-fungsi untuk mengakses LCD diantaranya
adalah:
- unsigned char lcd_init(unsigned char lcd_columns): untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi karakter pada baris ke-0. jumlah kolom pada LCD harus disebutkan (misal, 16). Kursor tidak di tampakkan. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain.
- void lcd_clear(void): menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0.
- void lcd_gotoxy(unsigned char x, unsigned char y): meletakkan posisi karakter pada kolom ke-x baris ke-y. Nomor baris dan kolom dimulai dari nol.
- void lcd_putchar(char c): menampilkan karakter c pada LCD
- void lcd_puts(char *str): menampilkan string yang disimpan pada SRAM pada LCD.
- void lcd_putsf(char flash *str): menampilkan string yang disimpan pada flash pada LCD.
d. Fungsi Delay
Menghasilkan delay dalam program-C. Berada pada header delay.h yang harus dimasukkan (include) sebelum digunakan. Sebelum memanggil fungsi, interupsi harus dimatikan terlebih dahulu, bila tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR yang digunakan pada menu Project – Configur – C Compiler – Code Generation.
Fungsi delay yang dihasilkan adalah:
- void delay_us(unsigned int n) : fungsi ini menghasilkan delay selama n μ-detik, n adalah nilai konstan.
- void delay_ms(unsigned int n) : fungsi ini menghasilkan delay selama n mili-detik, n adalah nilai konstan.
Kedua fungsi tersebut secara otomatis akan me-reset watchdog-timer setiap 1 mili-detik dengan mengaktifkan instruksi wdr.
Fungsi – fungsi lain seperti fungsi akses memori, I2C, maxim/dallas semiconductor DS1302 Real Time Clock, 1 Wire Protocol, SPI, Power Management dapat dilihat pada manual CodeVisionAVR, CodeVisionAVR user manual.
Tidak ada komentar:
Posting Komentar