关于超显示,你应该知道的一切

页面
参与者: 液体的灵魂
受欢迎的 最喜欢的 1

缓冲

内存是微控制器和嵌入式系统中的一个敏感话题。特别是在最流行的ATMEGA328P上,您需要保存您可以保存的每一个字节的内存,因此,Hyperdisplay默认为在无缓冲模式下运行(在某些情况下,显示硬件需要一个缓冲区)。然而,这样操作意味着您必须实时地观察绘图操作的发生。为了避免这种情况,还可以启用其他很酷的特性,比如(可能)我们需要记录屏幕上的内容的图层透明度。这就是缓冲绘图模式发挥作用的地方。

幸运的是,在缓冲模式下运行非常简单!您所需要做的就是为您的缓冲区分配内存(足够容纳所有像素),告诉你的缓冲窗口在哪里找到内存,并切换到缓冲模式。一旦进入缓冲模式,绘图函数将不会出现在屏幕上,直到'show()'被调用。同时,数据将重新路由到您提供的缓冲区。下面是这个过程在代码中的样子:

语言:chwColor_t smallWindowMem (32 * 64);//预留32*64像素的memorywind_info_t小窗口;//创建windowsmallwindow.xmin=16;//设置参数以匹配缓冲区大小mallwindow.ymin=72;smallwindow.xmax=16+31;/ /看,16+0是一个像素,所以16+31实际上是32像素宽smallwindow.ymax=72+63;//这意味着64像素高。所以现在我们的小窗口可以填充32*64 pixelsmydisplay.pccurrentwindow=&small window;//将当前窗口切换到小窗口mydisplay .buffer();//将当前窗口设置为buffer modemydisplay.line(0,0,55岁,45岁);//在窗户上画一条线……/ /继续drawingmyDisplay.show();//在conc中显示所有更改

缓冲绘图输出从TFT的例子

好了,你几乎到达了HyperDisplay的顶峰!再上一节课,你就会成为真正的高手