2019-12-27 18:50发布
xyz543 发表于 2015-1-20 15:59 让 GUI 整屏刷?!若是自己写的 GUI 这我就不便说了!但若是使用 uC/GUI or emWin 的话,整屏刷这又是何 ...
worldsing 发表于 2015-1-20 20:45 我的控制器是ST7920 128x64的单 {MOD}LCD,控制器支持读回,但是速度很低,所以开了1K的buf, gui是emWin,em ...
11_调整大小.JPG (93.73 KB, 下载次数: 0)
下载附件
2015-1-21 13:02 上传
worldsing 发表于 2015-1-21 12:50 嗯,多谢xyz543兄指导 CPU的片内RAM有富裕的,所以采取了开1K = (64/2) *(128/8) 个shor类型的Buf方式 em ...
xyz543 发表于 2015-1-21 15:21 worldsing 兄,指导真是不敢当,就当相互学习交流吧! 我不清楚您所指的 "emWin在反处理上的问题" 您是指 ...
最多设置5个标签!
我的控制器是ST7920 128x64的单 {MOD}LCD,控制器支持读回,但是速度很低,所以开了1K的buf,
gui是emWin,emWin官方目前不支持7920的控制器,自己写的接口,emwin更新一个点的颜 {MOD}
就需要发送4个byte的数据,而且,从整个图形层再到点的绘制估计会占用很长时间,
所以,有了和楼主以样的思路:
1个任务是刷屏,一次写入16个点的数据;
1个任务用于emWin
嗯,明白了,worldsing 兄,我以前捣鼓的 LCM 也是有回读的暂存器,而 emWin 当然也是没有针对市上全部的 LCD Contrroler 给予支持,所以我自己就写了个可以回读的接口,维有如此才能在不占用内存之下发挥较高的效率。
不过,我是没有搞过移植到这么小的 (128 x 64 单 {MOD}) LCM 过,所以也不知这 LCM 是否有其限制,但也没关系,重要的是只要能运行得起来怎样搞都行,没事的!呵呵~
真不明白,上这么高档次一个单片机,却用个12864的屏,现在都是彩屏年代的了,为什么不直接换彩屏,价格也差不多
实验证明,小内存单片机一样驱动的了彩屏,而且速度更快
详见:http://www.amobbs.com/thread-5598855-1-1.html
11_调整大小.JPG (93.73 KB, 下载次数: 0)
下载附件
2015-1-21 13:02 上传
worldsing 兄,指导真是不敢当,就当相互学习交流吧!
我不清楚您所指的 "emWin在反处理上的问题" 您是指在于 LISTBOX 内将所要选取的那一行自反白显示 (HighLight) 是吗?
而我对于 GUI 的应用面知道的比较少,学到较多的是移植方面的工作,而在于 2009 年后就几乎没在捣鼓 GUI 这东西了,虽然现在手上有着 emWin v5.20c 版的 SourceCode。
在我看来您的底层 API 貌似不是使用 Draw Bitmap 1 BPP 的功能在运作,而是大于 1 BPP 的有彩 {MOD}或灰阶的方式在运作是吗?
若是这样的话,估计您使用单 {MOD}的 LCM 而用大于 1 BPP 的 Function 工作的话,有可能在于您所开启的 MCU 内部显示快取资料区所回读的资料或方式会不正确而发生问题!
而又若您是使用正确的 1 BPP 的 Function 在运作的话,这...我就不清楚了,我只知道单 {MOD}的显示方式与灰阶显示及彩 {MOD}显示的 API 调用方式都是有所不同的!
不过若真要快速的找到解决的方法也是有,那就是您可以去私下请教 Eric2013 大神吧!Eric2013 兄他能在这么短的时间内将 GUI 搞到这么高的境界连我都要拜他为神了,呵呵~
多谢xyz543兄耐心指导, 您谦虚了。
1、是的,我打的字有问题,现象是是LISTBOX选择项无法反白显示,从图上来看是直接不显示反白部分,标题栏部分也无法显示;
2、您说的对,我用的不是emWin的底层 API (这个效果没有使用 Draw Bitmap 1 BPP 的功能),我尝试用过emWin的底层API,
GUICC_1,代码如下:
#define COLOR_CONVERSION GUICC_1
#define DISPLAY_DRIVER &GUIDRV_Template_API
void LCD_X_Config(void)
{
GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
LCD_SetSizeEx (0, 128, 64);
LCD_SetVSizeEx (0, 128, 64);
}
但是,这样的LCD配置无法正常显示,效果是花屏,GUIDRV_Template_API 我自定义实现的
void LCD_PutPixel(u32 x, u32 y, u8 color);
uint8_t LCD_GetPixel(uint32_t x, uint32_t y);
经过测试均正常绘制点;
3、我所用的LCM是ST7920的控制器,是单 {MOD}屏(黑白屏),无 {MOD}阶,同样,emWin所提供的GUICC_1也是单 {MOD}的,黑白两 {MOD}
可能是我对调 {MOD}板理解的不对?
4、我自定义的调 {MOD}板转化的API是(这是替换GUICC_1):
【 {MOD}彩索引API功能】:无论入口参数是什么颜 {MOD},返回的 {MOD}彩只有黑 {MOD}或者白 {MOD}
static LCD_COLOR _Index2Color_User(unsigned Index){
LCD_COLOR Color;
if(0 == Index)
Color = 0x00ffffff;
else
Color = 0;
return Color;
}
static unsigned _Color2Index_User(LCD_COLOR Color) {
unsigned Index;
if(0 == Color)
Index = 1;
else
Index = 0;
return Index;
}
值得怀疑有问题两个API接口
一周热门 更多>