HAMTRONIK || TUTORIAL CvAVR Part 2 "variable"


 

Halo Sobat hamtronik,

Untuk Part 2 Tutorial CvAVR ini kita akan membahas tentang variable. Variable itu sendiri bisa kita sebut sebagai kata ganti untuk memori.

Ada 3 macam memori pada Mikrokrontroller AVR Atmega, yaitu RAM, EEPROM dan FLASH.

RAM
RAM digunakan untuk menyimpan data sementara, artinya jiga MCU kita reset atau Catu daya mati maka data yang disimpan akan hilang. Data pada RAM bisa ditulis dan dihapus saat MCU bekerja.

EEPROM
EEPROM digunakan untuk menyimpan data permanen. Namun masih bisa di ubah, tulis dan hapus saat MCU bekerja.

FLASH 
FLASH ini adalah memori tempat program disimpan, saat MCU beroperasi memory ini hanya bisa dibaca. Pengisian data dilakukan saat proses compile dan upload hex.

Kembali ke Variable,
Menurut aksesbilitas variable dibagi menjadi 2 yaitu:
Variable Global, Yaitu variabel yang bida diakses oleh seluruh fungsi dalam program.
Variable Lokal, yaitu variable yang hanya bisa diakses dalam fungsi dimana variabel tersebut di deklarasikan.

aturan penulisan variabel:
1. Tidak boleh sama dengan keyword CvAVR
2. Tidak boleh dimulai dengan angka.
3. Harus unik

setiap variabel harus dideklarasikan tipe data yang dipakai. pemilihan tipe data ini harus tepat dan bijaksana, karena menyangkut penggunaan kapasistas memori MCU yaang terbatas.
berikut daftar tipe data beserta range nilainya.




Struktur penulisan:
untuk menyimpan di RAM : "tipe_data   nama_variabel;" 
untuk menyimpan di EEPROM: "eeprom tipe_data   nama_variabel;"
untuk menyimpan di memori flash: "flash   tipe_data   nama_variabel = nilai_variabel;"

oke sob, langsung praktek silahkan buat project baru dan ketik program seperti dibawah ini. agar tidak terlalu banyak, untuk komentar tidak perlu diketik.

contoh penggunaan variabel

Setelah di compile dan tidak ada error silahkan upload pada atmega8 sesuai skema dibawah ini. anda bisa menggunakan rangkaian sebenarnya ataupun dengan simulasi proteus.

Sekema Untuk Percobaan Variabel



Penjelasan program:
  1. Baris 1 s.d 6 merupkan komentar
  2. Baris 7 dan 8 deklarasi include
  3. Baris 11 Deklarasi Variabel Led1 dengan tipe data Char dan disimpan pada memori RAM
  4. Baris 12 Deklarasi Variabel Led2 dengan tipe data Unsigned Int dan disimpan pada memori eeprom 
  5. Baris 13 Deklarasi Variabel Led3 dengan tipe data Char dan disimpan pada memori Flash.
  6. Baris 16 Deklarasi Fungsi kedip, jadi semua fungsi selain fungsi "main" harus dideklarasikan terlebih dahulu agar bisa dipanggil di semua tempat.
  7. Baris 18 Awal fungsi main
  8. Baris 20-22 inisialisasi PORT sebagai output.
  9. Baris 24-25 Mengisi nilai pada variabel.
  10. Baris 27 awal dari sintax perulangan while
  11. Baris 29 memanggil Fungsi "kedip" dan diulang-ulang. karena dipanggil didalam sintax while
  12. Baris 31 kurung kurawal penutup fungsi main
  13. Baris 33-50 adalah fungsi kedip, fungsi ini bisa dipanggil dalam fungsi-fungsi lain.
  14. Baris 35 deklarasi variabel local dengan nama "kecepatan" dan bertipe data "unsigned char" sekalian diisi nilai variabelnya dengan 100. Jadi nilai ini akan berpengaruh ke kepada kecepatan kedip dari Led yang terpasang pada port-port atmega.
  15. Baris 36 deklarasi variabel local dengan nama "Led4" dan bertipe data "unsigned char"
  16. Baris 37 mengisi nilai variabel "Led4"
  17. Baris 38 Memberikan output pada PORTB sesuai dengan nilai variabel "Led4"
  18. Baris 39,41,43,45 dan 49 memberikan jeda atau delay selama 100 mili scond, yaitu sama dengan nilai variabel "kecepatan".
  19. Baris 40 Memberikan output pada PORTC sesuai dengan nilai variabel "Led3"
  20. Baris 42 Memberikan output pada PORTD sesuai dengan nilai variabel "Led2"
  21. Baris 44 Memberikan output pada PORTB sesuai dengan nilai variabel "Led1"
  22. Baris 46,47,48 memberikan output ke PORTB, PORTC, dan PORTD dengan nilai 0.

Penjelasan dalam Fortmat video silahkan tonton
nantikan..

Project CvAVR dan File Simulasi proteus silahkan download 

1 Comments

  1. Hi! Congratulations Great Tutorial 73 from Brazil ! PY2EGS

    ReplyDelete

Post a Comment

Previous Post Next Post