View Single Post
Old 15-01-2009, 12:27 PM   #2
longtu
Đệ tử 6 túi
 
longtu's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 146
:
Send a message via Yahoo to longtu
Trích:
Nguyên văn bởi nguyennam8888 View Post
j=(y/6*BITMAP_WIDTH_BIT+x);cái hàng này em không hiểu
Tôi giả xử bạn có màn hình led là 16x16, khii đó bạn khai báo Buff_mh như sau:
#define BITMAP_HEIGHT_BYTE] 2
#define BITMAP_WIDTH_BIT 16
unsigned char buff_mh[BITMAP_HEIGHT_BYTE][BITMAP_WIDTH_BIT]
...
Bây giờ giả xử bạn chọn tọa độ (0,0) là điểm led tại góc trái-phía duoi màn hình led. Bây giờ bạn muốn điểm có tọa độ là (0,0) sáng lên, ban chỉ cần goi hàm point(0,0);

void point(int8 x,int8 y)
{
unsigned char *pt;
int8 mask=0b00000001;
int16 j;
mask = mask << (y%8);//xác định vi tri y:
pt=&buff_mh[0][0];
j=(y/8*BITMAP_WIDTH_BIT+x);//xác dinh vi tri x
pt+=j;
*pt|= mask;
}

Xin loi các bạn, doan code nay hom truoc mình viet nhầm hàng này:
j=(y/8*BITMAP_WIDTH_BIT+x);//chia cho 8 chứ khong phai chia 6

Thân,
__________________
--------------------------------------------------------------------------------------
Phùng Minh Tuân
Email: tuan.phmt@gmail.com
"Cuộc đời sóng gió nuôi ta lớn
Bao lần thất bại dạy ta khôn".
longtu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn