電子制作小心得:
電子書要用到滾屏,在寫lcd12864底層驅動的時候就開始研究如何能實現滾屏,可惜液晶屏的寄存器所描述的滾屏只能實現一次滾,第2次滾的時候就失效了,再把滾屏禁止,原來的數據又回來了,弄了好久滾屏這塊還是沒弄懂。最后我只能每次翻一頁,每次重新刷數據。還有一個問題是這樣的,因為一個文檔里可以有英文、漢字、特殊符號(ascii里 小于32的那些)這樣一屏顯示多少數據是不固定的,有可能是540 也有可能是530 或者更少,所以每次翻頁文件指針移動的多少都不固定,向下翻頁的時候很簡單,只要記錄上一屏給lcd上顯示了幾個數據,然后下翻的時候只要把文件指針向后移動多少就行了。但向上翻頁時怎么辦?必須要知道上上一屏的數據是從哪個文件指針開始讀的,這就要做記錄?梢蚤_一個20 長度的unsigned long型數據來存儲,當然這只能支持向上翻18頁,其實這塊完全可以根據要讀的txt文檔的大小來計算出最壞情況下需要的數據長度,然后用malloc動態分配出這么長的內存單元來做記錄(這要保證啟動代碼里分配了足夠大的heap,因為malloc申請的內存來源于堆) |