(配列は一連の文字で初期化されます)
配列を大きくすると、「データ セグメントが大きすぎます」というエラーも表示されます。配列を「CODE」から「XDATA」にコピーするにはどうすればよいですか? それともこれは問題ではありませんか?
編集: また、この方法で関数を呼び出すと、lcd は配列内の要素 [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
}