因为Memory LCD 的特性,不能设置像素坐标,只能用缓存整体刷新。

所以对于Memory LCD来说,emWin移植仅与打点函数有关,这里用Sharp Memory LCD(ls013b7dh03)作为实例。

//LCD的显存,逐行扫描
//存放格式如下.
//[0]0 1 2 3 ... 16   
//[1]0 1 2 3 ... 16   
//[2]0 1 2 3 ... 16   
//[3]0 1 2 3 ... 16   
//[4]0 1 2 3 ... 16   
//[5]0 1 2 3 ... 16   
//[6]0 1 2 3 ... 16   
//[7]0 1 2 3 ... 16

...

//[127]0 1 2 3 ... 16

#define OLED_MAX_X 128
#define OLED_MAX_Y 128
#define LINE (128)
#define LINE_SIZE (16)
static char LCD_GRAM[LINE][LINE_SIZE];
void lcd_drawpoint(uint16_t x,uint16_t y,bool bDraw){

 uint16_t pos,bx,tmp;

  if(x>OLED_MAX_X-||y>OLED_MAX_Y-)
return;
pos=-y/;
bx=y%;
tmp=<<(bx);
if(bDraw)
LCD_GRAM[x][pos]|= tmp;
else
LCD_GRAM[x][pos]&= ~tmp; } void lcd_fillRect(uint16_t x,uint16_t y,uint16_t w,uint16_t h,bool bDraw)
{
uint16_t wi,hi;
for(hi=;hi<h;hi++){
for(wi=;wi<w;wi++)
lcd_drawpoint(x+wi,y+hi,bDraw);
}
} void lcd_fillRectByXY(uint16_t x0,uint16_t y0,uint16_t x1,uint16_t y1,bool bDraw)
{
uint16_t xStart=,yStart=;
uint16_t w,h; if(x0<x1){
xStart=x0;
w=x1-x0+;
}else{
xStart=x1;
w=x0-x1+;
} if(y0<y1){
yStart=y0;
h=y1-y0+;
}else{
yStart=y1;
h=y0-y1+;
}
lcd_fillRect(xStart,yStart,w,h,bDraw); } uint32_t lcd_getpoint(uint16_t x,uint16_t y)
{
}

逐行扫描型Memory LCD显存管理与emWin移植的更多相关文章

  1. 分页型Memory LCD显存管理与emWin移植

    上一篇随笔整理了一下逐行扫描型Memory LCD的显存管理与emWin移植,这篇就整理一下分页型Memory LCD显存管理与emWin移植. //此处以SSD1306作为实例 //OLED的显存/ ...

  2. TensorFlow中的显存管理器——BFC Allocator

    背景 作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 使用GPU训练时,一次训练任务无论是模型参数还是中间结果都需要占用大量显存.为了 ...

  3. 【原创】Linux环境下的图形系统和AMD R600显卡编程(4)——AMD显卡显存管理机制

    显卡使用的内存分为两部分,一部分是显卡自带的显存称为VRAM内存,另外一部分是系统主存称为GTT内存(graphics translation table和后面的GART含义相同,都是指显卡的页表,G ...

  4. tensorflow显存管理

    在运行上面的blog的Tensorflow小程序的时候程序我们会遇到一个问题,当然这个问题不影响我们实际的结果计算,但是会给同样使用这台计算机的人带来麻烦,程序会自动调用所有能调用到的资源,并且全占满 ...

  5. 6G显卡显存不足出现CUDA Error:out of memory解决办法

    ​ 从6月初开始,6G显存的显卡开始出现CUDA Error:out of memory的问题,这是因为dag文件一直在增加,不过要增加到6G还需要最少两年的时间. 现在出现问题的原因是1.内核太古老 ...

  6. [置顶] 基于FPGA的VGA简易显存设计&NIOS ii软核接入

    项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...

  7. [Pytorch]深度模型的显存计算以及优化

    原文链接:https://oldpan.me/archives/how-to-calculate-gpu-memory 前言 亲,显存炸了,你的显卡快冒烟了! torch.FatalError: cu ...

  8. Cpu Gpu 内存 显存 数据流

    [精]从CPU架构和技术的演变看GPU未来发展 http://www.pcpop.com/doc/0/521/521832_all.shtml 显存与纹理内存详解 http://blog.csdn.n ...

  9. 李洪强iOS经典面试题137-内存管理

      内存管理 ARC处理原理 ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autoreleas ...

随机推荐

  1. response和request的区别以及常见问题解决

    request是请求,即客服端发来的请求 response是响应,是服务器做出的响应 --------------------------------------------------------- ...

  2. Mac下QT错误,Xcode配置解决办法

    出现错误: Xcode not set up properly. You may need to confirm the license agreement by running / 解决办法如下: ...

  3. 搭建SVN服务器

    系统环境:CentOS 6.6   首先查看服务器上是否已安装了svn # rpm -qa subversion 如果没有安装,则执行此命令 # yum list subversion         ...

  4. [转]C# 使用Nlog记录日志到数据库

    本文转自:http://www.cnblogs.com/weixing/archive/2013/04/26/3044422.html 摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输 ...

  5. (转)也谈BIO | NIO | AIO (Java版)

    原文地址: https://my.oschina.net/bluesky0leon/blog/132361 关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一 ...

  6. 【原】让H5页面适配移动设备全家 - 设计师篇 - PPT

    上一篇文章<pageResponse - 让H5适配移动设备全家>中分享了一个小插件让一套H5页面适配几乎所有移动设备,得到了一些同学的推荐和认可,这里感谢大家的支持. 在此之前也在部门前 ...

  7. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  8. Python mock

    在测试过程中,为了更好地展开单元测试,mock一些数据跟对象在所难免,下面讲一下python的mock的简单用法. 关于python mock,网上有很多资料,这里不会讲的特别深,但一定会是实用为主, ...

  9. [LeetCode] Validate Binary Search Tree 验证二叉搜索树

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  10. 利用HttpWebRequest实现实体对象的上传

    一 简介 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于System.Net命名空间,默认情况下这个类对 ...