(阵列用一堆字符进行了调整)
当我使数组更大时,我也会遇到一个错误。如何将数组从"代码"复制到" XDATA"?还是这不是问题?
编辑:另外,当我以这种方式调用功能时,lcd element [i] []在数组中并打印下一个元素[i]。
任何帮助我都会非常感谢。
unsigned char piece [4] [8];
lcd_msg_write(piece[0]); //rank
lcd_write(SecondLine);
lcd_msg_write(piece[1]);
lcd_write(SecondLine);
lcd_msg_write(piece[2]);
lcd_write(SecondLine);
lcd_msg_write(piece[3]);
lcd_write(SecondLine);
void lcd_msg_write(char * ptr2)
{
int x;
RS = 1;
for (x=0; x<8;x++)
lcd_write(*ptr2++); //write till end of string reached
RS = 0;
}
void lcd_write(unsigned char display_data)//LCD 1 {
EN = 1;
P0 = display_data;
EN = 0;
delay_5msec(); //delay to allow write operation to complete
}
您可以将变量像这样放置到XDATA:
unsigned char xdata variable;
编辑:另外,当我以这种方式调用功能时,lcd element [i] []在数组中并打印下一个元素[i]。
如果我正确理解它,我想您的数组中有一些值,这就是为什么它可以跳过它。如果您显示实际输出(文本形式),我可以告诉您更多信息。但是至于代码正确性,一切都可以。它也可以是LCD的角色表,因此您写出一些不正确的字符,而LCD不支持或知道。
我认为问题是由于char * ptr2引起的。