[cvavr] bahasa c pada aplikasi mikrokontroller

Upload: imam-arifin

Post on 14-Oct-2015

68 views

Category:

Documents


5 download

DESCRIPTION

cvavr

TRANSCRIPT

  • 1 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Tutorial Singkat

    Bahasa C Pada Aplikasi mikrokontroller (Sumber : CodeVisionAVR Help v2.04 by Too PayZ)

    C Preprocessor

    C Preprocessor adalah macro processor yang digunakan secara otomatis oleh compiler

    C untuk mengubah program anda sebelum di kompilasi secara keseluruhan.

    Fungsi atau tujuannya antar lain :

    Menggunakan atau menambahkan file lain ke dalam project program yang dibuat.

    Misalnya menambahkan library, header, source lain, dll.

    Mendefinisikan macro yang mempermudah dalam penulisan program dan

    meningkatkan legibility (keterbacaan) source code.

    Mengatur kompilasi bersyarat untuk tujuan debugging dan untuk meningkatkan

    portabilitas program.

    Menentukan compiler specific directives.

    Contoh-contoh Preprocessor

    #include

    #include file_name

    #define PORTbutton PORTA.0

    #define ON 1

    #define strA A

    #define SUM(a,b) a+b

    cara menggunakan : int i=SUM(2,3);

    #define PRINT_MSG(t) printf(#t)

    cara menggunakan : PRINT_MSG(hello);

    #define ALFA(a,b) a ## b

    cara menggunakan : char ALFA(x,y)=1;

    #define ALFA(a,b) a ## b

  • 2 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Komentar

    Memulai komentar dengan karakter /* dan diakhiri karakter */. Contoh:

    /* This is a comment */

    /* This is a

    multiple line comment */

    Komentar satu baris menggunakan dua buah garis miring. Contoh :

    // This is also a comment

    Reserved Keyword / Kata kunci

    Reserved Keyword adalah kata kunci yang digunakan oleh kompiler CodeVisionAVR

    dan tidak boleh / tidak dapat digunakan sebagai nama identifier, variabel, dll.

    __eeprom

    __flash

    __interrupt

    __task

    _Bool

    break

    bit

    bool

    case

    char

    const

    continue

    default

    defined

    do

    double

    eeprom

    else

    enum

    extern

    flash

    float

    for

    goto

    if

    inline

    int

    interrupt

    long

    register

    return

    short

    signed

    sizeof

    sfrb

    sfrw

    static

    struct

    switch

    typedef

    union

    unsigned

    void

    volatile

    while

  • 3 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Identifier

    Identifier adalah nama yang Anda berikan label, variabel, fungsi atau objek lain.

    Identifier bisa berisi huruf (A. .. Z, a ... z) dan angka (0 ... 9), serta karakter garis bawah (_).

    Namun identifier hanya dapat dimulai dengan huruf atau garis bawah. Bahasa C adalah case

    sensitive sehingga huruf besar dan huruf kecil berbeda, variable1 yaitu tidak sama dengan

    Variable1. Identifier dapat memiliki hingga 64 karakter.

    Data Type

    Tabel berikut mencantumkan semua tipe data yang didukung oleh CodeVisionAVR C

    compiler, jangkauan dan nilai yang mungkin dan ukuranya:

    Tipe data bit tidak diperbolehkan dalam jenis elemen array atau struktur / union.

    Secara default tipe Char adalah pilihan unsigned char memiliki rentang 0-255.

    Untuk pengaturan default char silahkan cek atau uncek pada Project | Configure | C

    Compiler | Kode Generation | char is unsigned atau gunakan # pragma uchar +.

  • 4 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Operator

    Kompiler CodeVision AVR mendukung beberapa operator, antara lain :

    + - * / % ++ -- = == ~ ! != < > = & && | || ^ ? : > -= += /= %= &= *= ^= |= >>=

  • 5 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Aritmatika

    Operator Contoh Keterangan dan contoh.

    = Y = A; Pemberian nilai A ke Y.

    + Y = A + B; Penjumlahan A dan B hasil di Y

    ++ Y++; Increment / Kenaikan

    Y = Y + 1;

    -- Y--; Decrement / Penurunan

    Y = Y -1;

    - Y = A B; Pengurangan A dan B hasil di Y

    * Y = A * B; Perkalian A dan B hasil di Y

    / Y = A / B; Pembagian A dan B hasil di Y

    % Y = A % B

    Modulus atau sisa hasil bagi.

    Y = 25 % 5; // Y = 0

    Y = 26 % 5; // Y = 1

    Y = 14 % 6; // Y = 2

    += Y + =4;

    Penjumlahan variable tersebut dengan

    konstanta atau nilai tertentu.

    Y = Y + 4;

    -= Y - =4;

    Pengurangan variable tersebut dengan

    konstanta atau nilai tertentu.

    Y = Y - 4;

    *= Y * = 4;

    Perkalian variable tersebut dengan

    konstanta atau nilai tertentu.

    Y = Y * 4;

    /= Y / = 4;

    Pembagian variable tersebut dengan

    konstanta atau nilai tertentu.

    Y = Y / 4;

    %= Y % = 4;

    Modulus variable tersebut dengan

    konstanta atau nilai tertentu.

    Y = Y % 4;

  • 6 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Logika

    Operator Contoh Keterangan dan contoh.

    = = if (A == B) Jika A sama dengan B

    maka True

    != if (A != B) Jika A tidak sama dengan B

    maka True

    < if (A < B) Jika A lebih kecil dari B

    maka True

    B) Jika A lebih besar dari B

    maka True

    >= if (A >= B) Jika A lebih besar sama dengan B

    maka True

    ! if (!A) Jika tidak sama dengan A

    maka True.

    && if (Y==A && B== C) Jika Y = A dan B = C

    maka True.

    || if (Y==A || B== C) Jika Y = A atau B = C

    Maka True.

  • 7 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Manipulasi Bit

    Operator Contoh Keterangan dan contoh.

    ~ Y = ~A

    Nilai Y kebalikan dari nilai A

    Jika A = 11110000

    Maka Y = 00001111

    & Y = A & B

    Gerbang logika AND / perkalian bit

    Jika A = 11110000

    Jika B = 11001100

    Maka Y = 11000000

    | Y = A | B

    Gerbang logika OR / penjumlahan bit

    Jika A = 11110000

    Jika B = 11001100

    Maka Y = 11111100

    ^ Y = A ^ B

    Gerbang logika XOR

    Jika A = 11110000

    Jika B = 11001100

    Maka Y = 00111100

    n

    Pergeseran bit ke kanan sebanyak n bit.

    Jika A = 10000000

    dan Y = A

  • 8 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Operator Kondisional

    Berikut beberapa contoh operator kondisional:

    if (kondisi) then pernyataan;

    Contoh : if (Y == A) { putsf(nilai Y sama dengan A.); }

    if (kondisi) then pernyataan_1;

    else pernyataan_2;

    Contoh : if (Y == A) { putsf(nilai Y sama dgn A.); } else { putsf(nilai Y beda dgn A.); }

    if (kondisi_1) then pernyataan_1;

    else if (kondisi_2) then pernyataan_2;

    else pernyataan_3;

    Contoh : if (Y == A) { putsf(nilai Y sama dgn A.); } else if (Y == B) { putsf(nilai Y beda dgn B.); } else { putsf(nilai Y beda dgn A dan B.); }

  • 9 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    switch(ekspresi)

    {

    case kondisi1 : pernyataan 1

    break;

    case kondisi2 : pernyataan 2

    break;

    }

    Contoh : switch (Y) { case 1: putsf(nilai Y sama dgn 1.); break; case 2: putsf(nilai Y sama dgn 2.); break; }

    switch(ekspresi)

    {

    case kondisi1 : pernyataan 1

    break;

    case kondisi2 : pernyataan 2

    break;

    default : pernyataan default

    break;

    }

    Contoh : switch (Y) { case 1: putsf(nilai Y sama dgn 1.); break; case 2: putsf(nilai Y sama dgn 2.); break;

    default: putsf(Kondisi default Y berbeda.); break;

    }

  • 10 | 10 [CvAVR] Basic C Language

    Too PayZ DE | [CvAVR] Tutorial Singkat Bahasa C Pada Aplikasi mikrokontroller

    Perulangan ( Looping)

    Berikut beberapa contoh perulangan :

    for (nilai_awal; syarat_perulangan; proses_increament/decreament;)

    {

    pernyataan dalam loop;

    }

    Contoh : for (y = 0; y