lcd 320 * 240,假设要在上面显示三个 30 * 30的数值,并且实时的更新。
数字是不可能完全填充30 * 30的,那么意味着我们在lcd320 * 240背景上写数据的时候要不把相应的背景擦掉。
我们在写数字的时候一般是将数字图形的数组的每一个为1位进行填充到像素中,那么如何在保持背写区域不变的情况下把数字更新进去呢。我想的办法是在刚把320*240的图片写入到lcd后,此时待写入数据区域是干净的。将相对应待写入数值的那块区域的30 * 30的像素点读回来保存在一个buffer,这个buffer大小是30 * 30 * 2(因为一个像素是16bit),那么因为有三个数字区域,所以还得*3 ,那么总共花费900 * 2 * 3 = 5400 byte的大小。那么就会需要5k大小的全局变量用来存储待写区域的背景。然后再写入数值的时候擦掉一行写入一行,那么背景就不会因为实时更新数据而被重叠。但是这种方法很消耗 ram,请问各位,能有什么比较好的方法来解决这种问题么??
要看情况,
可能必须额外占用5K内存,
也可能不需要,直接运算得出最终的显示图像,然后写入LCD,这样就不占内存。
一周热门 更多>