显示一个点
来源:互联网 发布:短信接收软件 编辑:程序博客网 时间:2024/04/28 01:39
/*显示一个点
//==================================================================
//函数名: lcd_put_pixel()
//功能: 在座标(x, y)位置显示一个点。
//输入参数:(x, y): 要显示点的座标
p: 要显示点的值(0或1)
mode: 显示点的模式, 为下列值之一
DISP_MODE_PUT: 直接设置
DISP_MODE_OR: 与屏幕原有值“或取”后再写
DISP_MODE_XOR: 与屏幕原有值“异或”后再写
DISP_MODE_AND: 与屏幕原有值“与取”后再写
//返回值: 成功返回0,失败返回-1,超出屏幕范围返回OVER_RANGE
文件描述符未打开返回NO_FILDES,参数错误返回PARA_ERR
//注意事项:无
//=================================================================*/
- int lcd_put_pixel(unsigned char x, unsigned char y, unsigned char p, unsigned char mode)
- {
- /*第一步,参数检查,如果坐标在屏幕之外,则返回错误信息*/
- if ((x >= g_lcd_width)
- ||(y >= g_lcd_height))
- {
- return OVER_RANGE;
- }
- else if ((p != 0) && (p != 1))
- {
- return PARA_ERR;//p的参数有错
- }
- else
- {
- /*检查文件描述符是否被打开*/
- if (g_lcd_fildes < 0)//判断文件是否被打开
- {
- return NO_FILDES;//如果未打开,返回-2
- }
- else
- {
- unsigned int offset = (y * g_lcd_width + x);//起始偏移量
- unsigned char old_p = 0;
- unsigned char new_p = 0;
- if (mode != DISP_MODE_PUT)
- {
- if (lseek(g_lcd_fildes, offset, SEEK_SET) != offset)
- {
- return READ_ERR;//等待偏移量被成功设置
- }
- int result = lcd_read(g_lcd_fildes, &old_p, 1);//读取点的值,结果存放在p里
- if (result == API_ERR)
- {
- return READ_ERR;//无法读取原有的值
- }
- if (old_p > 0x00)
- {
- old_p = 0x01;
- }
- }
- /*根据不同的mode参数设置不同的写入值p*/
- switch (mode)
- {
- case DISP_MODE_PUT://直接设置
- {
- new_p = p * 0x0F;
- break;
- }
- case DISP_MODE_OR://求或
- {
- new_p = (old_p | p) * 0x0F;
- break;
- }
- case DISP_MODE_XOR://异或
- {
- new_p = (old_p ^ p) * 0x0F;
- break;
- }
- case DISP_MODE_AND://求与
- {
- new_p = (old_p & p) * 0x0F;
- break;
- }
- default:
- {
- return PARA_ERR;
- }
- }
- if (lseek(g_lcd_fildes, offset, SEEK_SET) != offset)
- {
- return WRITE_ERR;//等待偏移量被成功设置
- }
- int retval;
- retval = lcd_write(g_lcd_fildes, &new_p, 1);
- if (retval == API_ERR)
- {
- return WRITE_ERR;//如果写入结果为错误,则返回错误
- }
- /*将显示缓冲区的内容刷新到LCD*/
- if(lcd_flush_enable != 0)
- {
- retval = ioctl(g_lcd_fildes, LCD_IOC_DISPLAY);
- }
- if (retval < 0)
- {
- return IOCTL_ERR;
- }
- return API_OK;
- }
- }
- }
- 显示一个点
- 检测屏幕颜色显示坏点的一个小方法。
- 如何控制LCD模块显示一个点(128*64屏)
- android TextView ellipsize 只显示一个点 解决方案
- 英文字符过长时省略号仅显示一个点
- 一个指令解决github提交不显示绿点
- android MPchart 折现图只有一个点不显示问题
- opencv中在屏幕上每隔几秒显示一个点,并且保存点的坐标
- VTK读取一个TXT文档中的三维点坐标显示三维点云
- android:singleLine="true",[...]没有全部显示,只显示一个点[.]
- 设计一个点类,其中包含一对坐标点数据成员,一个计算两点距离的友元函数和坐标点的显示函数
- 检测屏幕颜色显示坏点的一个小方法。(还有别的)
- [VB.NET]左边为treeview,每当点一个节点,右边就显示新的窗口?
- Unity之一天一个技术点(二)---全局控制物体是否显示
- OpenGL编程逐步深入(二)在窗口中显示一个点
- opencv每隔几秒在图片上显示一个点 (代码)
- PCL同时在一个窗口中显示两个(多个)点云
- myeclipse在java程序中添加断点,断点显示成一个实心圆点
- 高职学生如何成为编程高手
- 软件测试大纲
- 把程序作为人生,把人生当作程序
- VVV
- kkjj
- 显示一个点
- Eclipse+MyEclipse 中 package ,Source Folder ,folder 有什么区别?
- SQL入门,使用与高级使用篇
- .NET程序员必须知道的五大辅助工具
- C++记录之数据类型学习。。
- div+css
- lookaside lists
- 要成为合格的.NET程序员需要知道哪些技术
- 可与小笑话v