Bacalah

Learning is forever

RSS Feed

Going where this year?

Insert Data Biner dan Menampilkannya di LCD pake CodevisionAVR

0 Comments
Posted by Taufiq on January 7, 2011 at 8:17 am

Karena ATMega32 yang langka dan saya punyanya ATMega16, saya memutuskan untuk mengconvert program line follower saya ke C. Di C, memori programnya lebih sedikit, sekitar 50% dari Bascom. Tapi saya menemukan kesulitan ketika mau masukin data biner sensor ke variabel (misalnya kita namain sensor)

Kalo di Bascom kan perintahnya bisa gini

If Dataadc0 > Vref0 Then
Sensor.0 = 1
End If
If Dataadc0 < Vref0 Then
Sensor.0 = 0
End If
di Codevision gak bisa gitu. Terus kalo mau nampilin data nya di lcd 16×2 tinggal gini

lcd bin(sensor)

Dan ternyata itu fungsi bawaan dari Bascom.

Setelah saya konsultasi sama Mas Eju, Mas Trianto, dan Andra, akhirnya saya dapet pencerahan. Untuk masukin data biner, tu gini kalo di Codevision

for(i=0;i<8;i++)
{
if (dataadc[i] > vref[i])
{
sensor|=1<<i;
}

if (dataadc[i] < vref[i])
{
sensor&=~(1<<i);
}
}

Dan untuk menampilkannya di lcd, kita bikin fungsi sendiri

void lcd_bin(unsigned char databyte)
{
register unsigned char i;
unsigned char buff[8];

for (i=0;i<8;i++)
{
if ((databyte &(1<<i))==0)
{
buff[i]=48;
}
else
{
buff[i]=49;
}
}

for (i=8;i>0;i–)
{
lcd_putchar(buff[i-1]);
}
}

dan cara pakai fungsinya tinggal gini

lcd_bin(sensor);

Hehehe. Makasih banyak buat para master yang sudah ngebantuin saya. Ternyata coding pake C lebih fleksibel dan menyenangkan, karena kita bisa berkereasi bikin fungsi2 sendiri tanpa bergantung banget sama si compiler.

You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

Leave a Reply to Anonymous Cancel reply

Your email address will not be published. Required fields are marked *