Bahasa C vs BASIC pada Mikrokontroler AVR
Terkadang kita dibuat bingung. Pas mau ngeprogram si mikro. Dikasih bahasa C atau Basic ? Pake C kurang faham, dengan Basic masih awam, hehe.. (nah itu masalahnya bro).
Bahasa C dengan compiler yang terkenal CodeVisionAVR (mikrokontroler AVR), sedangkan Basic dengan BASCOM-AVR nya memang yang paling banyak dipakai saat ini. Assembler ? gimana nasibnya ? Ya, beberapa masih ada yang pakai. Saya sendiri sudah lamaaaaa buanget gak pakai assembler. Rumit bin sulit alias njlimet..
Masing – masing tentu ada kelebihan dan kekurangannya. Namanya aja bikinan manusia. Tul gak bro ?
Ok, kita tengok sebentar bahasa C dengan CodeVisionAVR (CVAVR). Saya memakai versi 2.60.
ATmega8535 dengan freq 1 MHz.
#include <mega8535.h>
#include <alcd.h>
void main(void)
{
lcd_init(16);
lcd_clear();
lcd_putsf(“LCD Display”);
lcd_gotoxy(0,1);
lcd_putsf(“dengan CVAVR”);
while (1);
}
Hasilnya :
Nah berikutnya dengan BASCOM-AVR :
$regfile = “m8535.dat”
$crystal = 1000000
Cls
Lcd “LCD Display”
Lowerline
Lcd “dg BASCOM-AVR”
End
Hasilnya pada simulasi Proteus :
Ok, kalau dilihat maka keduanya terlihat sama – sama praktis. Ringkas dan tidak panjang. Nah kalau dilihat hasil kompilasinya, untuk CVAVR memakan memori program (Flash PEROM) sekitar 6,2%. Dengan BASCOM-AVR memori yang terpakai malah cumin 5%.
Kalau program untuk LCD mungkin terlalu sederhana ya. Sekarang kita coba serial komunikasi. Dengan Baudrate 9600 bps (freq 8 MHz) :
#include <mega8535.h>
#include <stdio.h>
void main(void)
{
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x33;
printf(“Serial Comm dg CVAVR”);
while (1);
}
Saya memanfaatkan CodeWizard-nya CVAVR, terlihat agak rumit kan ? sekarang kita lihat dengan BASCOM-AVR :
$regfile = “m8535.dat”
$crystal = 8000000
$baud = 9600
Print “Serial Comm dg BASCOM-AVR”
End
Lebih sederhana bukan ?
Akhirnya keputusan ditangan anda. Saya sendiri terkadang pakai C, tapi juga sering pakai Basic. Kalau mau gampang dipahami sih pakai Basic (BASCOM-AVR), walaupun untuk aplikasi yang membutuhkan kecepatan kerja yang tinggi saya sarankan pakai C saja.
belum sempet belajar bascom mas, selama ini make codevisionAVR terus, haha
salam kenal njeh
Wah lebih oke pake Code Vision dari pada bascom… walaupun njlimet tapi tingkat kerja yang tidak bisa diragukan