chào các bác, tui đang tìm hiểu tới phần lập trình avr sử dụng LCD 16x2 nhưng code có vấn đề ko chạy được, mong các bác giúp đỡ:
Các đoạn trên đã bỏ các phần ko trọng tâm. Code trên dùng để hiển thị biến name chạy từ phải sang trái liên tục với delay là 200 ms (chạy ở hàng 0), đồng thời hàng 1 hiển thị biến welcome, sau 3 giây hàng 1 sẽ thay đổi thành biến learn, cứ như vậy sau 3s sẽ thay đổi giữa 2 biến welcome và learn.
PHP Code:
char name[] = "Lê Minh Phuoc";
char welcome[] = "Welcome to you";
char learn[] = "AVR Programming";
unsigned char i;
unsigned char j;
float second;
char *temp = &welcome[0];
char *substring(char str[], unsigned char start, unsigned char length)
{
char val[17] = "";
char c[1];
while(start < strlen(str) && start < length)
{
c[0] = str[start++];
strcat(val, c);
}
return &val[0];
}
void main(void)
{
lcd_init(16);
i = 0;
j = 0;
second = 0;
while (1)
{
// Place your code here
lcd_gotoxy(15 - i, 0);
if (i == 15)
{
if (j < 16)
lcd_puts(substring(name, j++, i));
else
{
i = j = 0;
}
}
else
lcd_puts(substring(name, 0, ++i));
lcd_gotoxy(0, 1);
if (second >= 3)
{
second = 0;
if (temp == &welcome[0])
temp = &learn[0];
else
temp = &welcome[0];
}
else
second += 0.5;
lcd_puts(temp);
delay_ms(500);
lcd_clear();
}
}
Comment