/**************************************************************************** * 名称:GUI_Point() * 功能:在指定位置上画点。 * 入口参数: x 指定点所在列的位置 * y 指定点所在行的位置 * color 显示颜色(对于黑白色LCM,为0时灭,为1时显示) * 出口参数:返回值为1时表示操作成功,为0时表示操作失败。(操作失败原因是指定地址超出有 * 效范围) ****************************************************************************/ uint8 GUI_Point(uint32 x, uint32 y, TCOLOR color) { /* 参数过滤 */ if(x>=GUI_LCM_XMAX) return(0); if(y>=GUI_LCM_YMAX) return(0); /* 设置缓冲区相应的点 */ if( (color&0x01) != 0 ) gui_disp_buf[y][x>>3] |= DCB_HEX_TAB[x&0x07]; else gui_disp_buf[y][x>>3] &= (~DCB_HEX_TAB[x&0x07]);
/* 刷新显示 */ LCD_UpdatePoint(x, y); return(1); }
DCB_HEX_TAB[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01} 请问 在液晶驱动中 这个数组是干什么用的 if( (color&0x01) != 0 ) gui_disp_buf[y][x>>3] |= DCB_HEX_TAB[x&0x07]; else gui_disp_buf[y][x>>3] &= (~DCB_HEX_TAB[x&0x07]); 这个又是什么意思? |