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 ThenSensor.0 = 1End IfIf Dataadc0 < Vref0 ThenSensor.0 = 0End If
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.