电子制作小心得:
电子书要用到滚屏,在写lcd12864底层驱动的时候就开始研究如何能实现滚屏,可惜液晶屏的寄存器所描述的滚屏只能实现一次滚,第2次滚的时候就失效了,再把滚屏禁止,原来的数据又回来了,弄了好久滚屏这块还是没弄懂。最后我只能每次翻一页,每次重新刷数据。还有一个问题是这样的,因为一个文档里可以有英文、汉字、特殊符号(ascii里 小于32的那些)这样一屏显示多少数据是不固定的,有可能是540 也有可能是530 或者更少,所以每次翻页文件指针移动的多少都不固定,向下翻页的时候很简单,只要记录上一屏给lcd上显示了几个数据,然后下翻的时候只要把文件指针向后移动多少就行了。但向上翻页时怎么办?必须要知道上上一屏的数据是从哪个文件指针开始读的,这就要做记录。可以开一个20 长度的unsigned long型数据来存储,当然这只能支持向上翻18页,其实这块完全可以根据要读的txt文档的大小来计算出最坏情况下需要的数据长度,然后用malloc动态分配出这么长的内存单元来做记录(这要保证启动代码里分配了足够大的heap,因为malloc申请的内存来源于堆) |