找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8331|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機LCD上下翻頁功能的實現(xiàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:27926 發(fā)表于 2011-1-25 00:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

電子制作小心得:

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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表