음..
다른것은 잘모르겠구요
한가지 문제가 있는데..
unsigned char *BMP 의 size를 구한 부분에 문제가 있습니다.
코드의 의도를 볼때 BMP변수에 할당된 크기를 구하려고 하는것 같은데
아래 코드는 그냥 포인터변수의 크기 입니다.
win32시스템에서는 모든 포인터의 크기는 4Byte입니다.
void GLCD_BMP(int page, int column, const unsigned char *BMP)
{
unsigned int i, k=0;
GLCD_xy(page,column);
GLCD_xy_row(xcharacter,ycharacter,0);
i= sizeof(bmp)/sizeof(bmp[0]);
// sizeof(bmp) 는 항상 4가 됨
// sizeof(bmp) 는 BMP에 할당된 size를 구하는것이 아니라
// BMP변수의 size 즉 포인터의 size임
// win32 시스템에서 모든 포인터의 size는 4Byte임
while(k <= i)
{
disp_write(BMP[k]);
k++;
}
}
그럼..
김민조 님이 쓰신 글 :
: void GLCD_BMP(int page, int column, const unsigned char *BMP)
: {
: unsigned int i, k=0;
:
: GLCD_xy(page,column);
: GLCD_xy_row(xcharacter,ycharacter,0);
: i= sizeof(bmp)/sizeof(bmp[0]);
:
: while(k <= i)
: {
: disp_write(BMP[k]);
: k++;
: }
: }
:
: 이런식으로 하면 LCD에 BMP가 제대로 뿌려질까요?
: bmp는 코드변환프로그램을 이용해서 사용했고요.
: GLCD_xy_row()에서 x 어드레스와 y어드레스를 설정한다음
: BMP배열의 값을 뿌려주는 형식으로 짠 건데 지금 학교가 아니라서 구동이 되는지 확인을 못하겠네요~
: 고수님들의 의견을 듣고 싶습니다.
|