sumber:
http://www.forumsains.com/artikel/programming-mikrokontroler-avr-dengan-c/Pemrograman Bahasa C untuk AVR Bahasa C luas digunakan untuk pemrograman
berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah
merupakan
high level language, dimana memudahkan programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat dipelajari sebagai berikut.
1. Struktur penulisan program#include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{ [Deklarasi local variable/constant] [Isi Program Utama] }
2. Tipe datachar : 1 byte ( -128 s/d 127 )
unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan desimal
array : kumpulan data-data yang sama tipenya.
3. Deklarasi variabel & konstantaVariabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan: Global variabel/konstanta yang dapat diakses di seluruh bagian program.
Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.
4. StatementStatement adalah setiap operasi dalam pemrograman, harus diakhiri dengan
[ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan
tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ]
dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments /
komentar.
Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu
5. Function Functionadalah bagian program yang dapat dipanggil oleh program utama.
Penulisan : [tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2]) { [statement] ; }
6. Conditional statement dan looping if elsedigunakan untuk penyeleksian kondisi
if ( [persyaratan] ) { [statement1]; [statement2]; } else { [statement3]; [statement4]; }
for : digunakan untuk looping dengan jumlah yang sudah diketahui
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2]; }
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
while ( [persyaratan] ) { [statement1]; [statement2]; }
do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
do { [statement1]; [statement2]; } while ( [persyaratan] )
switch case : digunakan untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) { case [nilai1]: [statement]; break; case [nilai2]: [statement]; break; }
7. Operasi logika dan biner LogikaAND :&&
NOT : !
OR : ||
Biner AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~
8. Operasi relasional (perbandingan)Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=
9. Operasi aritmatika+ , - , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
% : sisa bagi
++ , -- : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ;
maka nilai a adalah 30 a *= 5 ;
jika nilai awal a adalah 30, maka nilai a = 30x5 = 150. a += 3 ;
jika nilai awal a adalah 30, maka nilai a = 30+5 = 33. a++ ;
jika nilai awal a adalah 5 maka nilai a = a+1 = 6. a-- ;
jika nilai awal a adalah 5 maka nilai a = a-1 = 4.